ext/pdo_odbc: infinite loop / 100% CPU when fetching a large nvarchar(max) via MS ODBC Driver 18 — SQLGetData is called with a 1-byte buffer and the loop never makes progress (distinct from GH-21534)
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 55/100
Direção de pesquisa
Comece com o pdo_odbc_issue.md anexado e com a implementação de ext/pdo_odbc em torno das chamadas a SQLGetData. Reproduza a busca de um nvarchar(max) grande com o MS ODBC Driver 18 e investigue por que o buffer de 1 byte retorna SQL_SUCCESS_WITH_INFO sem progresso. Está concluído quando a busca termina sem um loop infinito ou uso sustentado de 100% da CPU.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
[ODBC][45576][...][SQLGetData.c][237]
Entry:
Statement = 0x909c88000
Column Number = 1
Target Type = 1 SQL_CHAR
Buffer Length = 1
Target Value = 0x106bfb860
StrLen Or Ind = 0x10741a850
[ODBC][45576][...][SQLGetData.c][545]
Exit:[SQL_SUCCESS_WITH_INFO]
Buffer = Indicator = -4
Strlen Or Ind = 0x10741a850 -> -4 (64 bits)
PHP Version
PHP 8.5.8 (cli) (built: Jul 1 2026 03:46:27) (NTS)
Copyright (c) The PHP Group
Built by Homebrew
Zend Engine v4.5.8, Copyright (c) Zend Technologies
with Zend OPcache v8.5.8, Copyright (c), by Zend Technologies
Operating System
macOS 26.5.2 (build 25F84), Apple Silicon / arm64 (Darwin 25.5.0)
- Linguagem predominante
- C
- Estrelas
- 40.4k
- Forks
- 8.2k
- Merge médio
- 2d 15h
- PRs com merge (30d)
- 113
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de php/php-src
-
Bug Status: Needs Triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
Bug Status: Needs Triage
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
-
Bug Status: Needs Triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
Flaky hrtime.phpt test AbertaBug Category: Tests Status: Verified
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
Bug SAPI: fpm Status: Needs Triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
Todas as issues de php/php-src
Issues semelhantes
-
task
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
vsanthanam/JBird#429 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
bug documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
es-ude/OnDeviceTraining#459 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
bilelmoussaoui/gobject-linter#199 · 1 comentário ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
bradcypert/plum#53 ·