|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #81335 PHP Warning, Packets out of order after connection timeout
Submitted: 2021-08-06 10:37 UTC Modified: 2021-09-14 12:27 UTC
Avg. Score:4.3 ± 0.9
Reproduced:29 of 29 (100.0%)
Same Version:12 (41.4%)
Same OS:10 (34.5%)
From: bohuslav at simek dot si Assigned:
Status: Verified Package: PDO MySQL
PHP Version: 7.4.22 OS: Alpine Linux 3.14
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: bohuslav at simek dot si
New email:
PHP Version: OS:


 [2021-08-06 10:37 UTC] bohuslav at simek dot si
After migration from MySQL 8.0.23 to 8.0.25 a warning "Packets out of order. Expected 1 received 0. Packet size=145" will be shown after MySQL connection timeout. mysqlnd is used a as connection library.


PDO Driver for MySQL => enabled
Client API version => mysqlnd 8.0.8

I don't want to speculate, but this can be caused by changes introduce in Connection Management by MySQL 8.0.24 ( header Connection Management Notes) as MySQL now provides reason why client has been disconnected.

Test script:
<?php declare(strict_types=1);

$options = [
    PDO::ATTR_PERSISTENT         => false,
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET time_zone = "UTC"',

$pdo = new PDO(

$pdo->exec('SET SESSION wait_timeout=1');
$pdo->exec('SELECT 123'); // PHP Warning:  Packets out of order. Expected 1 received 0. Packet size=145

Expected result:
warning "Packets out of order. Expected 1 received 0. Packet size=145" should not happen.


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2021-08-06 12:43 UTC]
-Status: Open +Status: Verified
 [2021-08-06 12:43 UTC]
Thanks for reporting. This indeed should be fixed in mysqlnd. Tested on git.master and the mysqlnd client doesn't notice the connection has dropped when sending a query.
 [2021-08-06 18:16 UTC]
With MySQL 5.6.44 and 8.0.19 I get:
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

I'm waiting for the update to 8.0.26 to finish for about eight
hours now.  I'll test with that version when it's finished (if it
ever finishes).
 [2021-09-14 12:27 UTC]
Oops, forgot about this.  Anyway, result with git-master and MySQL

SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

Is this Linux specific?
 [2021-09-30 20:23 UTC] vovikems at gmail dot com
Having same error using official docker images: php:8.0.9-cli and mysql:8.0.26. Typically this error seen on first DB query since long time (about 10h-15h) keeping DB connection without any query sent. Next query is always ok.
FYI i'm using long-running php application (RoadRunner, Spiral Framework, CycleORM).
 [2022-03-07 16:20 UTC] maurice dot volaski at einsteinmed dot edu
I am seeing this on my Mac with PHP 8.1.2 (Apache module) and MySQL 8.0.28 Homebrew.
 [2022-09-06 14:06 UTC] peter dot maatman at rentman dot nl
We are seeing this issue appear in production after we started migrating our production database servers from mysql 8.0.19 to 8.0.28.

Our php version currently is 7.4.16 with pdo_mysql enabled, we run our php in a docker container based on the official php:7.4-fpm image.

I can confirm that the test script reproduces the bug.
 [2022-09-12 07:12 UTC] myhomeworkhelponline at gmail dot com
This is a common problem with all of us, I am an online coding tutor who provides top-notch PHP programming help to students in their assignments. I also suppose that PHP is a server scripting language and a significant tool for creating dynamic and interactive web pages. That's why we also suggest that you take the help of an expert at any time to solve your problem here:
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Thu Oct 06 06:05:52 2022 UTC