php / php/php-src

MYSQL_ATTR_INIT_COMMAND causing "The FastCGI process exited unexpectedly"

Aperta
#9,381 9 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug Extension: pdo_mysql Status: Needs Triage
Lingua principale
C
Stelle
40.4k
Fork
8.2k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

Description

We have some PHP code that has ran fine for years under PHP 7 / IIS / FastCGI

When updating to PHP 8.1.9 we're getting "The FastCGI process exited unexpectedly"

After digging through the code we have identified the issue as follows:

When using PDO::MYSQL_ATTR_INIT_COMMAND in the new PDO() constructor - FastCGI just dies

		$options = [
			PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
			PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
			PDO::ATTR_EMULATE_PREPARES   => false,
			PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4;"
		];

            $this->m_db = new PDO(
                $m_PDOConnectionString,
                $Username,
                $Password,
                $options
            );

Resulted in this output:

C:\Program Files (x86)\PHP\v8.1.9.dev\php-cgi.exe - The FastCGI process exited unexpectedly

But I expected this output instead:

N/A - expected DB connection to open as normal

Only thing i can find in the windows event log is as follows:

Faulting application name: php-cgi.exe, version: 8.1.9.0, time stamp: 0x62e93213
Faulting module name: php8.dll, version: 8.1.9.0, time stamp: 0x62e93aac
Exception code: 0xc0000005
Fault offset: 0x00008fac
Faulting process id: 0x4d4
Faulting application start time: 0x01d8b3db35c39991
Faulting application path: C:\Program Files (x86)\PHP\v8.1.9.dev\php-cgi.exe
Faulting module path: C:\Program Files (x86)\PHP\v8.1.9.dev\php8.dll
Report Id: 3737167c-6b9f-48b2-bdfb-74baff4570ec
Faulting package full name: 
Faulting package-relative application ID: 

Removing MYSQL_ATTR_INIT_COMMAND solves the prooblem and everything starts working again.

The systax we're using here, i.e. "SET NAMES utf8mb4;" is a valid MySQL command which we've tested in mySQL workbench etc

Is this related to https://github.com/php/php-src/issues/9143 i wonder?

PHP Version

8.1.9

Operating System

Windows Server 2019

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci il crash segnalato su PHP 8.1.9 in Windows Server 2019 con PDO::MYSQL_ATTR_INIT_COMMAND impostato su "SET NAMES utf8mb4;", quindi confrontalo con lo stesso costruttore senza quell’opzione. Inizia esaminando l’issue correlata 9143 e i dettagli forniti del registro eventi di Windows; il lavoro è completato quando il processo FastCGI non termina più inaspettatamente e la regressione è coperta da un test appropriato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
mysql, php
Ambito
backend, databases
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.