max_allowed_packet=16777216 causes test failure on ext/mysqli/tests/mysqli_real_connect_compression_error.phpt
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 40.4k
- Forks
- 8.1k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 96
Description
Description
From #6136 / #6144
@nikic, I totally agree with "the protocol is pretty ridiculous".
- smaller than 16M skips as expected
- max_allowed_packet=16777216 +1024; (the smallest increment is 1k) passes
- max_allowed_packet=16777216 generates the test output difference.
16777216 happens to be the MariaDB default: https://mariadb.com/kb/en/server-system-variables/#max_allowed_packet
The following code:
$ sapi/cli/php -d mysqli.allow_local_infile=On run-tests.php -P -q -j$(/usr/bin/nproc) -g FAIL,XFAIL,BORK,WARN,LEAK,XLEAK,SKIP --offline --show-diff --show-slow 1000 --set-timeout 120 ext/mysqli/tests/mysqli_real_connect_compression_error.phpt
Resulted in this output:
=====================================================================
PHP : /home/dan/repos/PHP-8.0/sapi/cli/php
PHP_SAPI : cli
PHP_VERSION : 8.1.14-dev
ZEND_VERSION: 4.1.14-dev
PHP_OS : Linux - Linux localhost.localdomain 6.1.0-0.rc7.51.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Nov 28 15:47:37 UTC 2022 x86_64
INI actual : /home/dan/repos/PHP-8.0
More .INIs :
---------------------------------------------------------------------
PHP : /home/dan/repos/PHP-8.0/sapi/cgi/php-cgi
PHP_SAPI : cgi-fcgi
PHP_VERSION : 8.1.14-dev
ZEND_VERSION: 4.1.14-dev
PHP_OS : Linux - Linux localhost.localdomain 6.1.0-0.rc7.51.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Nov 28 15:47:37 UTC 2022 x86_64
INI actual : /home/dan/repos/PHP-8.0
More .INIs :
---------------------------------------------------------------------
---------------------------------------------------------------------
PHP : /home/dan/repos/PHP-8.0/sapi/phpdbg/phpdbg
PHP_SAPI : phpdbg
PHP_VERSION : 8.1.14-dev
ZEND_VERSION: 4.1.14-dev
PHP_OS : Linux - Linux localhost.localdomain 6.1.0-0.rc7.51.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Nov 28 15:47:37 UTC 2022 x86_64
INI actual : /home/dan/repos/PHP-8.0
More .INIs :
---------------------------------------------------------------------
CWD : /home/dan/repos/PHP-8.0
Extra dirs :
VALGRIND : Not used
=====================================================================
Running selected tests.
========DIFF========
001+ array(1) {
002+ [0]=>
003+ array(3) {
004+ ["errno"]=>
005+ int(1153)
006+ ["sqlstate"]=>
007+ string(5) "08S01"
008+ ["error"]=>
009+ string(51) "Got a packet bigger than 'max_allowed_packet' bytes"
010+ }
001- array(0) {
}
012+
013+ Warning: Packets out of order. Expected 3 received 2. Packet size=64 in /home/dan/repos/PHP-8.0/ext/mysqli/tests/mysqli_real_connect_compression_error.php on line 27
003- array(0) {
004- }
014+ array(1) {
015+ [0]=>
016+ array(3) {
017+ ["errno"]=>
018+ int(2006)
019+ ["sqlstate"]=>
020+ string(5) "HY000"
021+ ["error"]=>
022+ string(26) "MySQL server has gone away"
023+ }
024+ }
========DONE========
FAIL Bug #80107 mysqli_query() fails for ~16 MB long query when compression is enabled [ext/mysqli/tests/mysqli_real_connect_compression_error.phpt]
Tested against MariaDB-10.3.38(in dev), and MySQL 5.7.40.
Blocks #10062.
But I expected this output instead:
test pass.
PHP Version
PHP-8.1-2f6b9e6c639c37405e45094bd9c8f2f3b3f377d3
Operating System
Fedora 36
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the provided run-tests.php command for ext/mysqli/tests/mysqli_real_connect_compression_error.phpt with max_allowed_packet=16777216 against MariaDB or MySQL. Read the test output alongside Bug #80107 and the related issues #6136, #6144, and #10062. Done means the compression error test produces the expected "test pass" result without the reported output difference.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- mysql, php
- Domain
- databases, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100