Assertion failure Zend/Optimizer/zend_inference.c:2086
Ouverte
Bug
Category: Optimizer
Status: Verified
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.1k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
The following code:
<?php
require "connect.inc";
$link = ldap_connect_and_bind($uri, $user, $passwd, $protocol_version);
insert_dummy_data($link, $base);
$result = ldap_list($link, "$base", "(objectClass=person)");
$entry = ldap_first_entry($link, $result);
var_dump(
$entry = ldap_next_entry($link, $entry),
ldap_get_values($link, $entry, 'sn'),
$entry = ldap_next_entry($link, $entry)
);
$fusion = $base;
function renderRawGraph(array $parents) {
$fusion = array();
foreach ($parents as $p) {
foreach ($graph as $graph) {
$graph[$graph]['line'] = 1;
}
$graph[] = array(
'line' => 1,
);
}
}
Resulted in this output:
Warning: Narrowing occurred during type inference of ZEND_FETCH_DIM_W. Please file a bug report on https://github.com/php/php-src/issues in /tmp/test.php on line 17
php: /home/phpfuzz/WorkSpace/flowfusion/php-src/Zend/Optimizer/zend_inference.c:2086: void emit_type_narrowing_warning(const zend_op_array *, zend_ssa *, int): Assertion `0 && "Narrowing during type inference"' failed.
Aborted (core dumped)
To reproduce (only in JIT):
-d "zend_extension=/home/phpfuzz/WorkSpace/flowfusion/php-src/modules/opcace.so" -d "opcache.enable=1" -d "opcache.enable_cli=1" -d "opcache.jit=1254"
PHP Version
nightly
Operating System
ubuntu 22.04
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 Zend/Optimizer/zend_inference.c:2086 et reproduisez l’assertion avec PHP nightly, opcache JIT activé, et le snippet PHP fourni. C’est terminé lorsque l’exemple n’émet plus l’avertissement d’inférence de type et n’abandonne plus dans le chemin de l’assertion.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- c, php
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100