php / php/php-src

max_allowed_packet=16777216 causes test failure on ext/mysqli/tests/mysqli_real_connect_compression_error.phpt

Ouverte
#10,063 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Bug Extension: mysqlnd Status: Verified
Langage dominant
C
Étoiles
40.4k
Forks
8.2k
Merge moyen
2 j 13 h
PR mergées (30 j)
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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par exécuter la commande run-tests.php fournie pour ext/mysqli/tests/mysqli_real_connect_compression_error.phpt avec max_allowed_packet=16777216 sur MariaDB ou MySQL. Consultez la sortie du test avec Bug #80107 et les issues associées #6136, #6144 et #10062. C'est terminé lorsque le test d'erreur de compression produit le résultat attendu "test pass" sans la différence de sortie signalée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
mysql, php
Domaine
databases, testing-qa
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.