Bug #32828 Database Crash when type in "Show Procedure Status"

Submitted: 28 Nov 2007 21:46 Modified: 24 Dec 2008 7:32
Reporter: Clement Ho Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Command-line Clients Severity:S2 (Serious)
Version:5.1.22 Beta OS:Windows (2003)
Assigned to: CPU Architecture:Any
Tags: crash, PROCEDURE, show status

[28 Nov 2007 21:46] Clement Ho
Description:
When I type in SQL command "Show Procedure Status" in a mysql client command line. The Database engine crashed. and I have to manually restart it.
I have a MS Visual 2005 installed so I have a traces stack attach to this report.
-----------
mysqld.exe!get_field(st_mem_root * mem=0x06569990, Field * field=0x00000000, String * res=0x09a7eb80)  Line 2526 + 0x7 bytes	C++
 	mysqld.exe!store_schema_proc(THD * thd=0x06568260, st_table * table=0x09294d48, st_table * proc_table=0x092a2768, const char * wild=0x00000000, int full_access=1, const char * sp_user=0x09a7ec58)  Line 3970	C++
 	mysqld.exe!fill_schema_proc(THD * thd=0x06568260, TABLE_LIST * tables=0x09292720, Item * cond=0x00000000)  Line 4041 + 0x17 bytes	C++
 	mysqld.exe!get_schema_tables_result(JOIN * join=0x092a0788, enum_schema_table_state executed_place=PROCESSED_BY_JOIN_EXEC)  Line 5834 + 0xc bytes	C++
 	mysqld.exe!JOIN::exec()  Line 1629 + 0x1c bytes	C++
 	mysqld.exe!mysql_select(THD * thd=0x06568260, Item * * * rref_pointer_array=0x06569440, TABLE_LIST * tables=0x09292720, unsigned int wild_num=0, List<Item> & fields={...}, Item * conds=0x00000000, unsigned int og_num=0, st_order * order=0x00000000, st_order * group=0x00000000, Item * having=0x00000000, st_order * proc_param=0x00000000, unsigned __int64 select_options=2684635648, select_result * result=0x09293a40, st_select_lex_unit * unit=0x06569078, st_select_lex * select_lex=0x06569330)  Line 2273	C++
 	mysqld.exe!handle_select(THD * thd=0x06568260, st_lex * lex=0x06569018, select_result * result=0x09293a40, unsigned long setup_tables_done_option=0)  Line 258 + 0x79 bytes	C++
 	mysqld.exe!execute_sqlcom_select(THD * thd=0x00000000, TABLE_LIST * all_tables=0x09292720)  Line 4539 + 0xa bytes	C++
 	mysqld.exe!mysql_execute_command(THD * thd=0x06568260)  Line 1836 + 0xc bytes	C++
 	mysqld.exe!mysql_parse(THD * thd=0x06568260, const char * inBuf=0x09291d18, unsigned int length=21, const char * * found_semicolon=0x09a7fad0)  Line 5447	C++
 	mysqld.exe!dispatch_command(enum_server_command command=COM_QUERY, THD * thd=0x06568260, char * packet=0x09289ce9, unsigned int packet_length=22)  Line 955	C++
 	mysqld.exe!do_command(THD * thd=0x00000016)  Line 712 + 0xe bytes	C++
 	mysqld.exe!handle_one_connection(void * arg=0x06568260)  Line 1099 + 0xa bytes	C++
 	mysqld.exe!pthread_start(void * param=0x0658e050)  Line 62 + 0x3 bytes	C
>	mysqld.exe!_threadstart(void * ptd=0x0658dcc8)  Line 196 + 0x6 bytes	C
 	kernel32.dll!77e6608b() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	

How to repeat:
Just type in "show procedure status". It will crashed.
[29 Nov 2007 0:04] MySQL Verification Team
Thank you for the bug report. I can't repeat the crash just issuing the
show procedure status command:

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.22-rc-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use test
Database changed
mysql> delimiter $$
mysql> create procedure sp()
    -> begin
    -> select 1+1;
    -> end$$
Query OK, 0 rows affected (0.01 sec)

mysql> show procedure status\G
*************************** 1. row ***************************
                  Db: test
                Name: sp
                Type: PROCEDURE
             Definer: root@localhost
            Modified: 2007-11-28 22:00:52
             Created: 2007-11-28 22:00:52
       Security_type: DEFINER
             Comment:
character_set_client: latin1
collation_connection: latin1_swedish_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.06 sec)

mysql>

Could you please provide the script to create the procedures you
have and also your my.ini file. Thanks in advance.
[6 Dec 2007 22:03] Clement Ho
I deleted the Database and recreate the database and tables. Now the "Show procedure status" is fine now however, when I try to create the procedure, it gave me error message.
C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -u root -p -D storydb < c:\midnight_job.sp
"ERROR 1307 (HY000) at line 4: Failed to CREATE PROCEDURE Midnight_Job"
The following is my midnight_job.sp (It ran without a hich for version 5.0).
--------------------------------------------
delimiter //
drop procedure if exists Midnight_Job//
Create procedure Midnight_Job()
begin
declare mytime datetime;
# backing up the current table
Insert into tbl_split_proc_stat (Type,Time) values('Backup Start',Now());
 select Date_Format(Date_sub(Now(),Interval 1 day),'%Y-%m-%d') into mytime;
 Insert ignore into tbl_mainnews_bak select * from tbl_mainnews where storytime > mytime;
Insert into tbl_split_proc_stat (Type,Time) values('Backup End',Now());
# Copy data from current table to old table (> 1 mth)
Insert into tbl_split_proc_stat (Type,Time) values('Copy Start',Now());
 Select Date_Format(Date_sub(Now(),Interval 1 month),'%Y-%m-%d') into mytime;
 Insert ignore into tbl_mainnews_old select * from tbl_mainnews where storytime <= mytime;
Insert into tbl_split_proc_stat (Type,Time) values('Copy End',Now());
#Delete data from current table (> 1 mth)
Insert into tbl_split_proc_stat (Type,Time) values('Delete Start',Now());
 delete from tbl_mainnews where storytime < mytime;
Insert into tbl_split_proc_stat (Type,Time) values('Delete End',Now());
#Optimize Table
Insert into tbl_split_proc_stat (Type,Time) values('Opt Start',Now());
 Optimize table tbl_mainnews;
Insert into tbl_split_proc_stat (Type,Time) values('Opt End',Now());
end //
delimiter ;
---------------------------------------
[9 Dec 2007 10:15] Sveta Smirnova
Thank you for the feedback.

I can not repeat described behavior too.

Have you run mysql_upgrade?
[10 Dec 2007 21:18] Clement Ho
Thanks so much, after I ran mysql_upgrade command. it doesn't have anymore problem. :)
Thank you so much, Sveta Smirnova.

Clement
[24 Dec 2008 7:31] Shane Bester
this is a duplicate of bug #41726

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.056 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.