Bug #43962 | "Packets out of order" calling a SHOW TABLE STATUS | ||
---|---|---|---|
Submitted: | 30 Mar 2009 14:47 | Modified: | 16 May 2009 0:04 |
Reporter: | Luca Zavarella | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: General | Severity: | S1 (Critical) |
Version: | 5.1.30, 5.1.32, 5.1.34-bzr | OS: | Any (Vista Business) |
Assigned to: | Sergei Glukhov | CPU Architecture: | Any |
Tags: | packets out of order, regression, show table status |
[30 Mar 2009 14:47]
Luca Zavarella
[30 Mar 2009 14:56]
Valeriy Kravchuk
Thank you for the problem report. Please, try to repeat with a newer version, 5.1.32, and inform about the results. Do you have the orderheader table in current schema?
[30 Mar 2009 15:03]
Luca Zavarella
Yes, "orderheader" is in my current schema. I'll install the 5.1.32 version and try it. Thanks. Luca
[30 Mar 2009 15:17]
Valeriy Kravchuk
I can not repeat this when refers to existing table in 5.1.32, hence the request.
[30 Mar 2009 15:22]
Luca Zavarella
The orderheader schema is: CREATE TABLE `orderheader` ( `OrderId` BIGINT(20) NOT NULL AUTO_INCREMENT, `OrderDate` DATETIME NOT NULL, `DueDate` DATETIME NOT NULL, `ShipDate` DATETIME DEFAULT NULL, `CustomerId` VARCHAR(50) COLLATE utf8_general_ci NOT NULL DEFAULT '', `SalesPersonId` BIGINT(20) NOT NULL, `SubTotal` DECIMAL(19,4) NOT NULL, `TaxAmt` DECIMAL(19,4) NOT NULL, `Freight` DECIMAL(19,4) NOT NULL, `TotalDue` DECIMAL(19,4) NOT NULL, `Note` VARCHAR(255) COLLATE utf8_general_ci DEFAULT NULL, `ModifiedDate` DATETIME NOT NULL, PRIMARY KEY (`OrderId`), KEY `CustomerId` (`CustomerId`), KEY `SalesPersonId` (`SalesPersonId`), CONSTRAINT `FK_OrderHeader_Customer` FOREIGN KEY (`CustomerId`) REFERENCES `customer` (`CustomerId`), CONSTRAINT `FK_OrderHeader_UserAccount` FOREIGN KEY (`SalesPersonId`) REFERENCES `useraccount` (`UserAccountId`) )ENGINE=InnoDB AUTO_INCREMENT=1 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; Do you need "customer" and "useraccount" schemas too?
[30 Mar 2009 15:31]
Valeriy Kravchuk
I need to know if the problem is repeatable on 5.1.32, for the beginning. 5.1.30 can not be fixed even if there is a bug in it...
[30 Mar 2009 19:04]
Luca Zavarella
I got the same error on 5.1.32 version
[31 Mar 2009 6:02]
Sveta Smirnova
Thank you for the report. I assume you get this error in you application. Have you read at http://dev.mysql.com/doc/refman/5.1/en/c-api-multiple-queries.html about "Multiple-result processing also is required if you execute CALL statements for stored procedures..."? If so and if you use multiple-result processing please provide repeatable test case (example program), so we can repeat the problem.
[31 Mar 2009 6:06]
Valeriy Kravchuk
OK. From mysql command line client, after calling this procedure several times (sometimes two, sometimes 4 or 5 - that's why I was not able to repeat with only two calls yesterday) I get (with 5.1.32 on XP): mysql> call order_get_table_info(); ERROR 2013 (HY000): Lost connection to MySQL server during query and Aborted_clients status variable is increased.
[31 Mar 2009 6:10]
Valeriy Kravchuk
Note that client from 5.0.79 was used in both cases, and the problem is NOT repeatable when the same procedure is created and executed on 5.0.79.
[31 Mar 2009 6:12]
Valeriy Kravchuk
Same results with mysql client from 5.1.32. So, the problem is in server.
[31 Mar 2009 6:18]
Valeriy Kravchuk
This is what I've got with recent 5.1.34-debug from bzr: openxs@suse:/home2/openxs/dbs/5.1> bin/mysql -uroot test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.1.34-debug Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create table orderheader(c1 int) engine=InnoDB; Query OK, 0 rows affected (0.05 sec) mysql> delimiter // mysql> CREATE DEFINER = 'root'@'localhost' PROCEDURE `order_get_table_info`() -> NOT DETERMINISTIC -> CONTAINS SQL -> SQL SECURITY DEFINER -> COMMENT '' -> BEGIN -> SHOW TABLE STATUS LIKE 'orderheader'; -> END; -> // Query OK, 0 rows affected (0.06 sec) mysql> call order_get_table_info()// +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | orderheader | InnoDB | 10 | Compact | 0 | 0 | 16384 | 0 | 0 | 9437184 | NULL | 2009-07-06 20:09:41 | NULL | NULL | latin1_swedish_ci | NULL | | | +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ 1 row in set (0.01 sec) mysql> call order_get_table_info()// Note: net_clear() skipped 11 bytes from file: socket (3) +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | orderheader | InnoDB | 10 | Compact | 0 | 0 | 16384 | 0 | 0 | 9437184 | NULL | 2009-07-06 20:09:41 | NULL | NULL | latin1_swedish_ci | NULL | | | +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ 1 row in set (0.01 sec) mysql> call order_get_table_info()// Note: net_clear() skipped 11 bytes from file: socket (3) +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | orderheader | InnoDB | 10 | Compact | 0 | 0 | 16384 | 0 | 0 | 9437184 | NULL | 2009-07-06 20:09:41 | NULL | NULL | latin1_swedish_ci | NULL | | | +-------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ 1 row in set (0.01 sec) mysql> call order_get_table_info()// Error: Packets out of order (Found: 23, expected 1) mysql: net.c:910: my_real_read: Assertion `0' failed. Aborted
[20 Apr 2009 7:47]
Luca Zavarella
Any news on this bug? Thank you.
[28 Apr 2009 10:50]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/72896 2873 Sergey Glukhov 2009-04-28 Bug#43962 "Packets out of order" calling a SHOW TABLE STATUS Error happens because sp_head::MULTI_RESULTS is not set for SP which has 'show table status' command. The fix is to add a SQLCOM_SHOW_TABLE_STATUS case into sp_get_flags_for_command() func. @ mysql-test/r/sp.result test result @ mysql-test/t/sp.test test case @ sql/sp_head.cc Error happens because sp_head::MULTI_RESULTS is not set for SP which has 'show table status' command. The fix is to add a SQLCOM_SHOW_TABLE_STATUS case into sp_get_flags_for_command() func.
[29 Apr 2009 9:52]
Alexander Nozdrin
I think, the patch is Ok.
[30 Apr 2009 12:19]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/73122 2881 Sergey Glukhov 2009-04-30 Bug#43962 "Packets out of order" calling a SHOW TABLE STATUS Error happens because sp_head::MULTI_RESULTS is not set for SP which has 'show table status' command. The fix is to add a SQLCOM_SHOW_TABLE_STATUS case into sp_get_flags_for_command() func. @ mysql-test/r/sp.result test result @ mysql-test/t/sp.test test case @ sql/sp_head.cc Error happens because sp_head::MULTI_RESULTS is not set for SP which has 'show table status' command. The fix is to add a SQLCOM_SHOW_TABLE_STATUS case into sp_get_flags_for_command() func.
[5 May 2009 19:38]
Bugs System
Pushed into 5.1.35 (revid:davi.arnaut@sun.com-20090505190206-9xmh7dlc6kom8exp) (version source revid:davi.arnaut@sun.com-20090505190206-9xmh7dlc6kom8exp) (merge vers: 5.1.35) (pib:6)
[6 May 2009 14:06]
Bugs System
Pushed into 6.0.12-alpha (revid:svoj@sun.com-20090506125450-yokcmvqf2g7jhujq) (version source revid:sergey.glukhov@sun.com-20090430101432-4gn94a5lgn3gte45) (merge vers: 6.0.11-alpha) (pib:6)
[16 May 2009 0:04]
Paul DuBois
Noted in 5.1.35, 6.0.12 changelogs. Invoking SHOW TABLE STATUS from within a stored procedure could cause a "Packets out of order" error.
[15 Jun 2009 8:24]
Bugs System
Pushed into 5.1.35-ndb-6.3.26 (revid:jonas@mysql.com-20090615074202-0r5r2jmi83tww6sf) (version source revid:jonas@mysql.com-20090615070837-9pccutgc7repvb4d) (merge vers: 5.1.35-ndb-6.3.26) (pib:6)
[15 Jun 2009 9:04]
Bugs System
Pushed into 5.1.35-ndb-7.0.7 (revid:jonas@mysql.com-20090615074335-9hcltksp5cu5fucn) (version source revid:jonas@mysql.com-20090615072714-rmfkvrbbipd9r32c) (merge vers: 5.1.35-ndb-7.0.7) (pib:6)
[15 Jun 2009 9:44]
Bugs System
Pushed into 5.1.35-ndb-6.2.19 (revid:jonas@mysql.com-20090615061520-sq7ds4yw299ggugm) (version source revid:jonas@mysql.com-20090615054654-ebgpz7elwu1xj36j) (merge vers: 5.1.35-ndb-6.2.19) (pib:6)