Bug #80374 [Fbk->Opn]: Mysqli warning Packets out of order. Expected 1 received 0

From: Date: Mon, 09 Aug 2021 13:41:00 +0000
Subject: Bug #80374 [Fbk->Opn]: Mysqli warning Packets out of order. Expected 1 received 0
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-235711@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80374&edit=1

 ID:                 80374
 Updated by:         cmb@php.net
 Reported by:        w2kzx80 at gmail dot com
 Summary:            Mysqli warning Packets out of order. Expected 1
                     received 0
-Status:             Feedback
+Status:             Open
 Type:               Bug
 Package:            MySQLi related
 Operating System:   CentOs
 PHP Version:        7.4.12
-Assigned To:        cmb
+Assigned To:        
 Block user comment: N
 Private report:     N

 New Comment:

Okay, so apparently your comment was a "typo".  Anyhow, this bug
report doesn't appear to be actionable, unless you can provide
further information.


Previous Comments:
------------------------------------------------------------------------
[2021-08-09 13:24:25] w2kzx80 at gmail dot com

How can i know if it is bug of MariaDB or php?
I didnt develop nor php nor mysql - i just reported which is issue - i guess its something with
bytes in compression algorythm between php and mariadb but how can i know if it is php bug or
mariadb bug? Most looks like php because i used console mysql utility with same request and didnt
receive any error but I dont know how all this works - i think developers of php language must know
isnt it?..

------------------------------------------------------------------------
[2021-08-09 11:02:20] cmb@php.net

> But i cant wait till it will be fixed in mysql server so...

So is this a bug in MariaDB?  Is there a related bug report?

------------------------------------------------------------------------
[2021-07-19 13:47:26] w2kzx80 at gmail dot com

Thats my "solution" in php - but OF COURSE - it is bad solution. But i cant wait till it
will be fixed in mysql server so... maybe it will be useful for somebody

$res = $db->query($query);
if (!$res) $res=$db->query(preg_replace('/^([ ]*[^ ]+) (.+)$/uis','$1 
$2',$query));

Thats it... It adds one additional space between first word of request and next part
Like
"SELECT * FROM table" -> "SELECT  * FROM table"

Unfortunately i cant detect some logical indications that some query will not be successful. Only
this method with retry...

------------------------------------------------------------------------
[2021-07-19 07:30:32] info at 4ws-netdesign dot de

We discover the same problem:

Ubuntu 18.04 - PHP 7.4.3 FPM/FastCGI
MySQL:  8.0.25-0ubuntu0.20.04.1 - (Ubuntu) 

Yes it's reproducible: if you have a query producing this error you can repeat as often you
want: the warning appears.

We have simple queries produding this error. By adding useless whitespaces in the query you can fix
this query - but the problem still exists at other places.

Increasing max_allowed_packet to 2G in my.cnf fixes the problem partially but it still occurs on
some places.

Scripts worked fine with PHP 7.2 before. And it's really simple queries like

SELECT * FROM tablename

producing this error (small tables => 0-10 entries)

------------------------------------------------------------------------
[2020-12-13 08:44:39] w2kzx80 at gmail dot com

guys - I wrote You enough. Didnt You read?

- Platform Linux
- MySQL = 
MariaDB [(none)]> STATUS;
--------------
mysql  Ver 15.1 Distrib 5.5.65-MariaDB, for Linux (x86_64) using readline 5.1

SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         5.5.65-MariaDB MariaDB Server
Protocol version:       10
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306

- i use mysqli library. Phpinfo shows mysqli
Client API library version	mysqlnd 5.0.12-dev - 20150407 - $Id:
b5c5906d452ec590732a93b051f3827e02749b83 $
Compression	supported
Command buffer size	4096
Read buffer size	32768
Read timeout	31536000
Collecting statistics	Yes
Collecting memory statistics	No
Tracing	n/a
Loaded
plugins	mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password
API Extensions	mysqli,pdo_mysql

- Which connection method was used = TCP/IP
- Your table schema. (SHOW CREATE TABLE tbl_name) including charset used for connection and table
storage. 
CREATE TABLE labels_auto (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  label_id int(11) DEFAULT NULL,
  atype char(1) DEFAULT NULL,
  did varchar(20) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8"

- The character encoding of your file. Are you using UTF-8?
Yes

- Are you using utf8mb4 charset? Did you set the charset via set_charset() method? 
yes i used utf8 in set_charset

- HEX dump of the query string producing the error. (There could be a hidden character there)
I dont understand what You want from me...
this query returns
HEX("SELECT * FROM voipe_481.labels_auto")
53454C454354202A2046524F4D2060766F6970655F343831602E606C6162656C735F6175746F60

- HEX dump of the sample data causing the error. 
I dont understand.. query doesnt execute - something happen while query is compressed and sent to
server and server doesnt recognize it

- Self contained reproducible example. http://sscce.org/ should help
you make such an example.
Sorry - i dont have time for it
I get You all the info

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=80374


--
Edit this bug report at https://bugs.php.net/bug.php?id=80374&edit=1


Thread (13 messages)

« previous php.bugs (#235711) next »