PHP 8.2.0 access violation while executing a 'foreach' loop
Personne n'a encore pris cette issue.
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
Encountered an access violation bug in PHP 8.2.0 while executing a foreach loop on an array. It's inside a complex PHP application. Unfortunateley, I cannot reproduce the error with a small extract of the code just with the loop. Using the extract, it works :-\
I added the extract also to here. But, might not help much as it works. I assigned the variables for the loop with the same values just before the loop which crashes. Background: Application is a house automation server. Loop creates the commands for an i2c command.
What I see:
- The loop just stops before all array elements are executed and PHP exits immediately without calling any error- or exit-handler. The last command in the loop is executed. The next element is not retrieved. The loop is successfully executed ~10 times. In the next attempt, PHP crashes
- No message is written to the prompt
- No entry in the PHP error log is created (all error reporting is enabled)
- A windows access violation event is created. See attachment (partly in German; hope thats not a problem)
- It workes without errors in PHP 8.1.13 (cli) (built: Nov 22 2022 15:49:14) (ZTS Visual C++ 2019 x64)
If I can provide more information, just advise me.
PHP_8.2.0_Crash.txt
PHP_8.2.0_Crash_php.txt
PHP Version
PHP 8.2.0 (cli) (built: Dec 6 2022 15:31:23) (ZTS Visual C++ 2019 x64) - from windows.php.net
Operating System
Windows 10 22H2 Build 19045.2311
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par examiner PHP_8.2.0_Crash_php.txt et PHP_8.2.0_Crash.txt, puis exécutez l’extrait fourni avec PHP 8.2.0 et 8.1.13 sous Windows pour confirmer la différence. La progression nécessite de réduire l’échec complexe de foreach à un cas reproductible ; le travail est terminé lorsque la violation d’accès peut être reproduite et que sa cause ou son correctif a été établi.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 18/100