Bug #78682 [Com]: wrong executed if-else
| From: | bugreports at gmail dot com | Date: | Tue, 24 Dec 2019 09:51:57 +0000 |
| Subject: | Bug #78682 [Com]: wrong executed if-else | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-224512@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=78682&edit=1
ID: 78682
Comment by: bugreports at gmail dot com
Reported by: bugreports at gmail dot com
Summary: wrong executed if-else
Status: Feedback
Type: Bug
Package: opcache
Operating System: Linux
PHP Version: master-Git-2019-10-17 (Git)
Block user comment: N
Private report: N
New Comment:
seems to be fixed in the current PHP 8 HEAD and for https://bugs.php.net/bug.php?id=78790 i worked
around by refcator my database layer to use mysqli in object style
BTW: benchmarks with 100& identical environment thrown against 7.2/7.3/7.4/8.0-jit HEAD
7.2: 3119,30
7.3: 3250,43 - +131,13
7.4: 3294,71 - +44,28 - versus 7.2: +175,41
8.0: 3347,46 - +52,75 - versus 7.2: +228,16
Previous Comments:
------------------------------------------------------------------------
[2019-12-24 09:21:40] laruence@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves.
A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external
resources such as databases, etc. If the script requires a
database to demonstrate the issue, please make sure it creates
all necessary tables, stored procedures etc.
Please avoid embedding huge scripts into the report.
------------------------------------------------------------------------
[2019-10-17 22:43:14] bugreports at gmail dot com
it is for sure the jit
$null is also undefined in the same line no matter if it write it with a swicth or if-else while
it's impossible that $null is later in this loop is undefined
comment out that two lines from php.ini and the code works as before
#opcache.jit_buffer_size = 50000000
#opcache.jit = 1235
foreach($this->parent->query_fetch_all("describe
$table") as $row)
{
$null = 0;
if(strtolower($row['Null']) === 'yes')
{
$null = 1;
}
..............
}
------------------------------------------------------------------------
[2019-10-17 22:08:40] bugreports at gmail dot com
Description:
------------
it's impossiblöe that $ml is undefined in that if-else statement
opcache.jit_buffer_size = 50000000
opcache.jit = 1235
Warning: Undefined variable: ml in global_mysql_ext.inc.php on line 581
switch($extended)
{
default:
$arr[$row['Field']] = $x_type;
break;
case 1:
if($maxlength)
{
$rw = mysqli_fetch_row($this->parent->query("select
max(length({$row['Field']})) from $table", 1));
$ml = (int)$rw[0];
}
else
{
$ml = 0;
}
$arr[$row['Field']] = ['type'=>$x_type, 'null'=>$null,
'length'=>$length, 'maxlength'=>$ml]; /** this is line 581 */
break;
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=78682&edit=1