Bug #17204 | second CALL to procedure crashes Server | ||
---|---|---|---|
Submitted: | 7 Feb 2006 21:04 | Modified: | 31 May 2006 1:07 |
Reporter: | Roland Bouman | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Stored Routines | Severity: | S2 (Serious) |
Version: | 5.0.17 nt/5.0BK/5.1BK | OS: | Windows (WinXP/Linux) |
Assigned to: | Sergei Glukhov | CPU Architecture: | Any |
[7 Feb 2006 21:04]
Roland Bouman
[7 Feb 2006 21:41]
Markus Popp
I could also produce this bug on MySQL 5.0.18 and I also managed to produce this bug on a Linux server (also with 5.0.18). My MySQL 5.1.5 server on Windows even crashed the first time when I called the procedure.
[7 Feb 2006 22:47]
MySQL Verification Team
I was unable to repeat on 5.0.18 Windows. Could you please provide the complete script test including the create schema/table which is used with the procedure. Thanks in advance.
[7 Feb 2006 23:08]
Beat Vontobel
Roland, you should probably give the complete minimal database dump (all schemas and tables, not only those involved in the exact query) that you can use on a clean install to reproduce the bug. I was not yet able to reproduce it on Linux and Mac OS X. But Giuseppe Maxia experienced the same bug on two different servers, but not on a third one. After I told him to drop a few tables the bug disappeared on one of the two servers. I'd also give it an S1. Such crashing bugs are really complete show stoppers.
[7 Feb 2006 23:40]
Roland Bouman
test and oo schema
Attachment: test 20060208 0040.sql (text/plain), 2.75 KiB.
[7 Feb 2006 23:42]
Roland Bouman
Ok, i just verified that the crash still occurs when using a proc in the same schema wehre the table is located: mysql> use test; Database changed mysql> create table p(id int not null); ERROR 1050 (42S01): Table 'p' already exists mysql> call bogus(schema(),'p'); +--------------------------------------------------------------- ---------------------------------------------------------------- | concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenced_column_ | +--------------------------------------------------------------- ---------------------------------------------------------------- | test.c (c_ibfk_1 )name -> name,type -> type +--------------------------------------------------------------- ---------------------------------------------------------------- 1 row in set (1.33 sec) Query OK, 0 rows affected (1.33 sec) mysql> call bogus(schema(),'p'); ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> (Accidentally, the file is still marked oo)
[8 Feb 2006 9:53]
Giuseppe Maxia
I could reproduce the bug using my normal testing server (MySQL 5.0.18 on Linux Fedora4). Then Beat Vontobel suggested that I might have some legacy database files (created with previous versions of MySQL 4.1.x and 5.0.x). Indeed I had them, and after I dumped all databases and rebuilt them, that bug disappered. My initial test case was this: #---- CUT HERE ---- create database if not exists test; use test; drop table if exists tt2; drop table if exists tt1; CREATE TABLE tt1 ( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT NULL) ENGINE=InnoDB; CREATE TABLE tt2 ( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, id_1 INT UNSIGNED NOT NULL, val INT UNSIGNED NOT NULL, FOREIGN KEY (id_1) REFERENCES tt1(id)) ENGINE=InnoDB; delimiter // drop function if exists test_func // create function test_func (p_database VARCHAR(50), p_table VARCHAR(50)) RETURNS text READS SQL DATA BEGIN declare mytext text; declare aline text; declare done boolean default false; declare get_them cursor for SELECT COLUMN_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA = p_database AND REFERENCED_TABLE_NAME = p_table ; declare continue handler for not found set done = true; open get_them; set mytext = ''; /* DEPS_LOOP: loop fetch get_them into aline; if (done) then leave DEPS_LOOP; end if; set mytext = concat(mytext, '\n', aline); end loop; */ close get_them; return mytext; END// delimiter ; #---- CUT HERE ---- As you can see, I commented out the fetching loop, and the crashing bug was here, with the same error as reported by Roland.
[8 Feb 2006 9:57]
Beat Vontobel
Just note that even if the removal of the legacy tables helped, it doesn't seem to be connected only to those. Markus could reproduce it on a server without any legacy tables.
[8 Feb 2006 9:59]
Giuseppe Maxia
One more clue, perhaps useful. Here is the stack trace of my server when the crash occurred: 0x817be28 handle_segfault + 356 0xc47420 (?) (nil) 0x818fd34 _Z21mysql_execute_commandP3THD + 508 0x826f7a4 _Z17mysql_open_cursorP3THDjP13select_resultPP18Server_side_cursor + 332 0x827bd46 _ZN9sp_cursor4openEP3THD + 66 0x8278fca _ZN14sp_instr_copen9exec_coreEP3THDPj + 34 0x8277f6e _ZN13sp_lex_keeper23reset_lex_and_exec_coreEP3THDPjbP8sp_instr + 318 0x8278f4d _ZN14sp_instr_copen7executeEP3THDPj + 73 0x8275ae0 _ZN7sp_head7executeEP3THD + 772 0x827608a _ZN7sp_head16execute_functionEP3THDPP4ItemjP5Field + 558 0x813096c _ZN12Item_func_sp12execute_implEP3THDP5Field + 116 0x8133bd4 _ZN12Item_func_sp7val_strEP6String + 48 0x8116cc4 _ZN4Item4sendEP8ProtocolP6String + 160 0x8170fed _ZN11select_send9send_dataER4ListI4ItemE + 201 0x81bc49e _ZN4JOIN4execEv + 658 0x81bdd65 _Z12mysql_selectP3THDPPP4ItemP13st_table_listjR4ListIS1_ES2_jP8st_orderSB_S2_SB_mP13select_resultP18st_select_lex_unitP13st_sel + 305 0x81b9dee _Z13handle_selectP3THDP6st_lexP13select_resultm + 234 0x818fd81 _Z21mysql_execute_commandP3THD + 585 0x8196c06 _Z11mysql_parseP3THDPcj + 306 0x818e6be _Z16dispatch_command19enum_server_commandP3THDPcj + 1178 0x818e1e9 _Z10do_commandP3THD + 129 0x818d6f1 handle_one_connection + 609 0xd46b80 (?) 0xbc8dee (?)
[8 Feb 2006 11:03]
MySQL Verification Team
Hi, Thank you for the feedback. Still I was unable to repeat with the script provided by Roland: mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.05 sec) mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.03 sec) mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.03 sec) mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.05 sec) mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.02 sec) Query OK, 0 rows affected (0.03 sec) mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.03 sec) mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.05 sec) mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.05 sec) mysql> create table p(id int not null); ERROR 1050 (42S01): Table 'p' already exists mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.03 sec) mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.03 sec) mysql> call bogus(schema(),'p')\G *************************** 1. row *************************** concat( table_schema , '.' , table_name , ' (' , constraint_name , ' )' , group_concat( column_name , ' -> ' , referenc: test.c (c_ibfk_1 )name -> name,type -> type 1 row in set (0.03 sec) Query OK, 0 rows affected (0.03 sec) Then I think this issue is repeatable (like another bugs already reported) when was done an upgrade without to dump/restore the databases created with earliest version. Could you please try to repeat on fresh install. Thanks in advance.
[8 Feb 2006 11:43]
Roland Bouman
Ok Miguel, thanks for testing. I will do a fresh install and try to repeat it there. But I won't do so right now (sorry bit busy at the moment); Tonight or maybe tomorrow even, I will. I'll post back as soon as I get the chance. regards Roland. (Anyone else that can reproduce it on a fresh install in the mean time - please don't wait for me - go ahead and fire your comments. TIA)
[8 Feb 2006 16:25]
MySQL Verification Team
Thank you. I will left in can't repeat status until someone can provide a repeatable test case.
[8 Feb 2006 22:17]
Beat Vontobel
Miguel, did you test on 5.0.19-bk? Could this be a duplicate of Bug #15533? (I can't tell from the information I see there.) That one would have been already fixed.
[8 Feb 2006 22:35]
MySQL Verification Team
Hi Beat, I tested against the Windows server release 5.0.18, that is my point that the upgrade issue is a serious candidate of the source of the crash. Also my co-worker Valeriy tested against on Linux with 5.0.19 (latest source) without to repeat the crash. Thanks for the feedback.
[5 Mar 2006 2:46]
Markus Popp
This bug occurs on 5.1.7, too. Here's the stored procedure (which is located in the funcs database): DELIMITER $$ DROP PROCEDURE IF EXISTS `funcs`.`getDeps` $$ CREATE PROCEDURE `getDeps`(pDatabase VARCHAR(200), pTable VARCHAR(200)) SQL SECURITY INVOKER BEGIN SELECT CONCAT(REFERENCED_COLUMN_NAME, ' -> (', TABLE_SCHEMA, '.', TABLE_NAME, ') ', COLUMN_NAME) AS `references` FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA = @pDatabase AND REFERENCED_TABLE_NAME = @pTable ORDER BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME; END $$ DELIMITER ; And here's my call to the SP: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 5.1.7-beta-nt-max Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use mpopp Database changed mysql> call funcs.getDeps(database(), 'mysqluc'); Empty set (21.53 sec) Query OK, 0 rows affected (21.53 sec) mysql> call funcs.getDeps(database(), 'mysqluc'); ERROR 2013 (HY000): Lost connection to MySQL server during query
[5 Mar 2006 3:06]
Markus Popp
I could also reproduce this bug on Linux (SuSE Linux 10.0 with MySQL 5.0.18-Max).
[9 Mar 2006 0:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[9 Mar 2006 23:29]
Markus Popp
This bug still occurs in MySQL 5.0.19 (and also in 5.1.7 and 5.1.8BK).
[9 Mar 2006 23:52]
Roland Bouman
I was unable to reproduce it on a clean install of 5.1.7beta but clearly, Markus is still experiencing this problem. How should we go about to find out what the difference is between our environments?
[10 Mar 2006 20:34]
Markus Popp
Please try the following: To emulate relevant parts of my installation, download the my.ini, dump.sql and dump_mysql.sql file, provided in bug report 15072 (in private comments, only visible to developers), then try: C:\mysql\bin>mysql -u root mysql < C:\dump_mysql.sql C:\mysql\bin>mysqladmin -u root flush-privileges C:\mysql\bin>mysql -u mpopp < C:\dump.sql C:\mysql\bin>mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 to server version: 5.0.19-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE funcs; Query OK, 1 row affected (0.03 sec) mysql> CREATE DATABASE mpopp; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL ON funcs.* TO mpopp@localhost; Query OK, 0 rows affected (0.02 sec) mysql> GRANT ALL ON mpopp.* TO mpopp@localhost; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye C:\mysql\bin>mysql -u mpopp Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 to server version: 5.0.19-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> USE funcs Database changed mysql> DELIMITER $$ mysql> mysql> DROP PROCEDURE IF EXISTS `funcs`.`getDeps` $$ Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> CREATE PROCEDURE `getDeps`(pDatabase VARCHAR(200), -> pTable VARCHAR(200)) -> SQL SECURITY INVOKER -> BEGIN -> -> SELECT CONCAT(REFERENCED_COLUMN_NAME, ' -> (', -> TABLE_SCHEMA, '.', -> TABLE_NAME, ') ', -> COLUMN_NAME) AS `references` -> FROM information_schema.KEY_COLUMN_USAGE -> WHERE REFERENCED_TABLE_SCHEMA = pDatabase -> AND REFERENCED_TABLE_NAME = pTable -> ORDER BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME; -> -> END $$ Query OK, 0 rows affected (0.00 sec) mysql> mysql> DELIMITER ; mysql> USE mpopp Database changed mysql> DROP TABLE IF EXISTS `mpopp`.`mysqluc`; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CREATE TABLE `mpopp`.`mysqluc` ( -> `id` int(10) unsigned NOT NULL, -> `url` varchar(100) NOT NULL, -> `event_type` varchar(20) NOT NULL, -> `topic` varchar(200) NOT NULL, -> `speaker` varchar(200) NOT NULL, -> `track` varchar(200) NOT NULL, -> `time_from` datetime NOT NULL, -> `time_to` datetime NOT NULL, -> `location` varchar(100) NOT NULL, -> `description` text, -> PRIMARY KEY (`id`), -> UNIQUE KEY `url` (`url`) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.03 sec) mysql> CALL funcs.getDeps(database(), 'mysqluc'); ERROR 2013 (HY000): Lost connection to MySQL server during query This time, the crash occured even when the procedure was called for the first time - most of the time (at least up to MySQL 5.0.18), the crash occured on its second execution.
[10 Mar 2006 21:06]
Markus Popp
I tried the same on 5.0.18 - this time, the procedure crashed the server the second time: C:\mysql\bin>mysql -u root mysql < C:\dump_mysql.sql C:\mysql\bin>mysqladmin -u root flush-privileges C:\mysql\bin>mysql -u mpopp < C:\dump.sql C:\mysql\bin>mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 5.0.18-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE funcs; Query OK, 1 row affected (0.00 sec) mysql> CREATE DATABASE mpopp; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL ON funcs.* TO mpopp@localhost; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL ON mpopp.* TO mpopp@localhost; Query OK, 0 rows affected (0.02 sec) mysql> exit Bye C:\mysql\bin>mysql -u mpopp Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 to server version: 5.0.18-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> USE funcs Database changed mysql> DELIMITER $$ mysql> mysql> DROP PROCEDURE IF EXISTS `funcs`.`getDeps` $$ Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CREATE PROCEDURE `getDeps`(pDatabase VARCHAR(200), -> pTable VARCHAR(200)) -> SQL SECURITY INVOKER -> BEGIN -> -> SELECT CONCAT(REFERENCED_COLUMN_NAME, ' -> (', -> TABLE_SCHEMA, '.', -> TABLE_NAME, ') ', -> COLUMN_NAME) AS `references` -> FROM information_schema.KEY_COLUMN_USAGE -> WHERE REFERENCED_TABLE_SCHEMA = pDatabase -> AND REFERENCED_TABLE_NAME = pTable -> ORDER BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME; -> -> END $$ Query OK, 0 rows affected (0.00 sec) mysql> mysql> DELIMITER ; mysql> USE mpopp Database changed mysql> DROP TABLE IF EXISTS `mpopp`.`mysqluc`; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CREATE TABLE `mpopp`.`mysqluc` ( -> `id` int(10) unsigned NOT NULL, -> `url` varchar(100) NOT NULL, -> `event_type` varchar(20) NOT NULL, -> `topic` varchar(200) NOT NULL, -> `speaker` varchar(200) NOT NULL, -> `track` varchar(200) NOT NULL, -> `time_from` datetime NOT NULL, -> `time_to` datetime NOT NULL, -> `location` varchar(100) NOT NULL, -> `description` text, -> PRIMARY KEY (`id`), -> UNIQUE KEY `url` (`url`) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.02 sec) mysql> CALL funcs.getDeps(database(), 'mysqluc'); Empty set (0.09 sec) Query OK, 0 rows affected (0.11 sec) mysql> CALL funcs.getDeps(database(), 'mysqluc'); ERROR 2013 (HY000): Lost connection to MySQL server during query
[20 Mar 2006 11:38]
Markus Popp
I'd like to propose the following updates for this bug report: Severity: S1 (since this bug crashes the server, I would give it the highest priority) Version: 5.0.17, 5.0.18, 5.0.19, 5.1.7, 5.1.8BK OS: Windows, Linux
[20 Mar 2006 19:24]
MySQL Verification Team
I was able to repeat with Windows: c:\mysql\bin>mysqld-nt --standalone --console 060320 12:55:46 InnoDB: Started; log sequence number 0 749827247 060320 12:55:47 [Note] mysqld-nt: ready for connections. Version: '5.0.19-nt' socket: '' port: 3306 MySQL Community Edition (GPL) c:\mysql\bin>mysql -u root mysql < C:\markus\dump_mysql.sql c:\mysql\bin>mysqladmin -u root flush-privileges c:\mysql\bin>mysql -u mpopp < C:\markus\dump.sql c:\mysql\bin>mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 to server version: 5.0.19-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE funcs; Query OK, 1 row affected (0.02 sec) mysql> CREATE DATABASE mpopp; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL ON funcs.* TO mpopp@localhost; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL ON mpopp.* TO mpopp@localhost; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye c:\mysql\bin>mysql -u mpopp Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 to server version: 5.0.19-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> USE funcs Database changed mysql> DELIMITER $$ mysql> DROP PROCEDURE IF EXISTS `funcs`.`getDeps` $$ Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CREATE PROCEDURE `getDeps`(pDatabase VARCHAR(200), -> pTable VARCHAR(200)) -> SQL SECURITY INVOKER -> BEGIN -> SELECT CONCAT(REFERENCED_COLUMN_NAME, ' -> (', -> TABLE_SCHEMA, '.', -> TABLE_NAME, ') ', -> COLUMN_NAME) AS `references` -> FROM information_schema.KEY_COLUMN_USAGE -> WHERE REFERENCED_TABLE_SCHEMA = pDatabase -> AND REFERENCED_TABLE_NAME = pTable -> ORDER BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME; -> -> END $$ Query OK, 0 rows affected (0.00 sec) mysql> DELIMITER ; mysql> USE mpopp Database changed mysql> DROP TABLE IF EXISTS `mpopp`.`mysqluc`; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CREATE TABLE `mpopp`.`mysqluc` ( -> `id` int(10) unsigned NOT NULL, -> `url` varchar(100) NOT NULL, -> `event_type` varchar(20) NOT NULL, -> `topic` varchar(200) NOT NULL, -> `speaker` varchar(200) NOT NULL, -> `track` varchar(200) NOT NULL, -> `time_from` datetime NOT NULL, -> `time_to` datetime NOT NULL, -> `location` varchar(100) NOT NULL, -> `description` text, -> PRIMARY KEY (`id`), -> UNIQUE KEY `url` (`url`) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.14 sec) mysql> CALL funcs.getDeps(database(), 'mysqluc'); ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> I will test with latest Windows server and Linux.
[20 Mar 2006 20:43]
MySQL Verification Team
Thank you for the bug report. I was able to repeat with latest source on Linux Suse (see changeset at the bottom): miguel@hegel:~/dbs/5.0> bin/mysql -uroot mysql < /home/miguel/markus/dump_mysql.sql miguel@hegel:~/dbs/5.0> bin/mysqladmin -u root flush-privileges miguel@hegel:~/dbs/5.0> bin/mysql -u mpopp < /home/miguel/markus/dump.sql miguel@hegel:~/dbs/5.0> bin/mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 5.0.20-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE funcs; Query OK, 1 row affected (0.00 sec) mysql> CREATE DATABASE mpopp; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL ON funcs.* TO mpopp@localhost; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL ON mpopp.* TO mpopp@localhost; Query OK, 0 rows affected (0.01 sec) mysql> exit; Bye miguel@hegel:~/dbs/5.0> bin/mysql -u mpopp Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 to server version: 5.0.20-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> USE funcs Database changed mysql> DELIMITER $$ mysql> DROP PROCEDURE IF EXISTS `funcs`.`getDeps` $$ Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CREATE PROCEDURE `getDeps`(pDatabase VARCHAR(200), -> pTable VARCHAR(200)) -> SQL SECURITY INVOKER -> BEGIN -> SELECT CONCAT(REFERENCED_COLUMN_NAME, ' -> (', -> TABLE_SCHEMA, '.', -> TABLE_NAME, ') ', -> COLUMN_NAME) AS `references` -> FROM information_schema.KEY_COLUMN_USAGE -> WHERE REFERENCED_TABLE_SCHEMA = pDatabase -> AND REFERENCED_TABLE_NAME = pTable -> ORDER BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME; -> -> END $$ Query OK, 0 rows affected (0.01 sec) mysql> DELIMITER ; mysql> USE mpopp Database changed mysql> DROP TABLE IF EXISTS `mpopp`.`mysqluc`; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> CREATE TABLE `mpopp`.`mysqluc` ( -> `id` int(10) unsigned NOT NULL, -> `url` varchar(100) NOT NULL, -> `event_type` varchar(20) NOT NULL, -> `topic` varchar(200) NOT NULL, -> `speaker` varchar(200) NOT NULL, -> `track` varchar(200) NOT NULL, -> `time_from` datetime NOT NULL, -> `time_to` datetime NOT NULL, -> `location` varchar(100) NOT NULL, -> `description` text, -> PRIMARY KEY (`id`), -> UNIQUE KEY `url` (`url`) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.01 sec) mysql> CALL funcs.getDeps(database(), 'mysqluc'); Empty set (0.09 sec) Query OK, 0 rows affected (0.09 sec) mysql> CALL funcs.getDeps(database(), 'mysqluc'); ERROR 2013 (HY000): Lost connection to MySQL server during query [New Thread 1129204656 (LWP 17033)] [New Thread 1129405360 (LWP 17034)] 060320 17:15:18 [Note] /home/miguel/dbs/5.0/libexec/mysqld: ready for connections. Version: '5.0.20-debug' socket: '/tmp/mysql.sock' port: 3306 Source distribution [New Thread 1129606064 (LWP 17038)] [Thread 1129606064 (zombie) exited] [New Thread 1129606064 (LWP 17041)] [Thread 1129606064 (zombie) exited] [New Thread 1129606064 (LWP 17044)] [Thread 1129606064 (zombie) exited] [New Thread 1129606064 (LWP 17046)] [Thread 1129606064 (zombie) exited] [New Thread 1129606064 (LWP 17057)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1129606064 (LWP 17057)] 0x081fbf45 in check_table_access (thd=0x8e65680, want_access=1, tables=0x0, no_errors=false) at sql_parse.cc:5176 5176 if (tables->schema_table && (gdb) quit The program is running. Exit anyway? (y or n) y miguel@hegel:~/dbs/5.0> miguel@hegel:~/dbs/5.0> bk changes /home/miguel/dbs/mysql-5.0/ | head ChangeSet@1.2096, 2006-03-20 14:17:47+04:00, gluh@eagle.intranet.mysql.r18.ru Fix for bug#18224 VIEW on information_schema crashes the server additional check for subselect ChangeSet@1.2095, 2006-03-20 13:42:02+04:00, gluh@eagle.intranet.mysql.r18.ru Fix for bug #18113 "SELECT * FROM information_schema.xxx crashes server" Crash happened when one selected data from one of INFORMATION_SCHEMA tables and in order to build its contents server had to open view which used stored function and table or view on which one had not global or miguel@hegel:~/dbs/5.0>
[29 Mar 2006 12:20]
Sergei Glukhov
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/4273
[25 Apr 2006 5:49]
Sergei Glukhov
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/5452
[2 May 2006 4:05]
Markus Popp
When will the fix be in the source? The bug still exists in 5.0.21 and 5.1.9.
[18 May 2006 11:01]
Sergei Glukhov
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/6561
[30 May 2006 5:43]
Sergei Glukhov
Fixed in 5.0.23
[31 May 2006 1:07]
Paul DuBois
Noted in 5.0.23 changelog. Multiple calls to a stored procedure that selects from INFORMATION_SCHEMA could cause a server crash.