Bug #14312 Server crashes when editing an existing stored procedure.
Submitted: 26 Oct 2005 0:44 Modified: 15 Dec 2005 11:25
Reporter: James Swander Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Stored Routines Severity:S2 (Serious)
Version:5.0.15/5.0.16 BK source OS:Windows (Windows XP/Linux)
Assigned to: CPU Architecture:Any

[26 Oct 2005 0:44] James Swander
Description:
When you edit an existing Stored Procedure through MySQL Administrator, the server instance stops and you lose the Stored Procedure all together.

How to repeat:
Create a new Stored Procedure and apply it.  Open it again using the "Edit Stored Proc" button.  Click the "Execute SQL" button.  The server stops and the Stored Procedure gets erased from the server.
[26 Oct 2005 1:55] MySQL Verification Team
Thank you for the bug report.

This is a server bug when queried by MA in sequence of commands
crashing with show procedure status. I was able for to repeat also
with Windows server 5.0.16

		      8 Connect     root@localhost on 
		      8 Query       SET SESSION interactive_timeout=1000000
		      8 Query       SELECT @@sql_mode
		      8 Query       SET SESSION sql_mode=''
		      8 Query       SET NAMES utf8
		      8 Init DB     test
		      8 Query       SHOW PROCEDURE STATUS
		      8 Query       SHOW CREATE PROCEDURE `test`.`bugmy`
		      8 Query       SHOW FUNCTION STATUS
		      8 Quit       
051025 23:03:14	      9 Connect     root@localhost on 
		      9 Query       SET SESSION interactive_timeout=1000000
		      9 Query       SELECT @@sql_mode
		      9 Query       SET SESSION sql_mode=''
		      9 Query       SET NAMES utf8
		      9 Query       SHOW CREATE PROCEDURE `test`.`bugmy`
		      9 Quit       
051025 23:03:18	      1 Query       DROP PROCEDURE IF EXISTS test.bugmy
		      1 Query       CREATE PROCEDURE `bugmy`()
BEGIN
  select 1+2;
END
		     10 Connect     root@localhost on 
		     10 Query       SET SESSION interactive_timeout=1000000
		     10 Query       SELECT @@sql_mode
		     10 Query       SET SESSION sql_mode=''
		     10 Query       SET NAMES utf8
		     10 Init DB     test
		     10 Query       SHOW TABLE STATUS
		     10 Quit       
		     11 Connect     root@localhost on 
		     11 Query       SET SESSION interactive_timeout=1000000
		     11 Query       SELECT @@sql_mode
		     11 Query       SET SESSION sql_mode=''
		     11 Query       SET NAMES utf8
		     11 Init DB     test
		     11 Query       SHOW TABLE STATUS
		     11 Quit       
		     12 Connect     root@localhost on 
		     12 Query       SET SESSION interactive_timeout=1000000
		     12 Query       SELECT @@sql_mode
		     12 Query       SET SESSION sql_mode=''
		     12 Query       SET NAMES utf8
		     12 Init DB     test
		     12 Query       SHOW PROCEDURE STATUS

and the stack trace of Linux server is:

051025 23:44:07 [Note] /home/miguel/dbs/5.0/libexec/mysqld: ready for connections.
Version: '5.0.16-debug'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
[New Thread 1129679792 (LWP 6648)]
[New Thread 1129880496 (LWP 6668)]
[New Thread 1130298288 (LWP 6669)]
[New Thread 1130498992 (LWP 6670)]
[New Thread 1130818480 (LWP 6671)]
[Thread 1130498992 (zombie) exited]
[Thread 1130818480 (zombie) exited]
[New Thread 1130498992 (LWP 6672)]
[Thread 1130498992 (zombie) exited]
[Thread 1130298288 (zombie) exited]
[New Thread 1130498992 (LWP 6673)]
[Thread 1130498992 (zombie) exited]
[New Thread 1130298288 (LWP 6674)]
[Thread 1130298288 (zombie) exited]
[New Thread 1130498992 (LWP 6675)]
[Thread 1130498992 (zombie) exited]
[New Thread 1130498992 (LWP 6676)]
[Thread 1130498992 (zombie) exited]
[New Thread 1130498992 (LWP 6677)]
[Thread 1130498992 (zombie) exited]
[New Thread 1130298288 (LWP 6678)]
[Thread 1130298288 (zombie) exited]
[New Thread 1130498992 (LWP 6679)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1130498992 (LWP 6679)]
0x40253903 in strlen () from /lib/tls/libc.so.6
(gdb) bt full
#0  0x40253903 in strlen () from /lib/tls/libc.so.6
No symbol table info available.
#1  0x082f5ab6 in store_schema_proc (thd=0x8e7b748, table=0x8e968d0, proc_table=0x8e9ac40, wild=0x0, full_access=true, 
    sp_user=0x4361f700 "miguel@192.168.0.33") at sql_show.cc:2777
        enum_idx = 1
        tmp_string = {Ptr = 0x8e92798 "bugsp", str_length = 5, Alloced_length = 5, alloced = false, str_charset = 0x87928e0}
        time = {year = 0, month = 0, day = 1, hour = 0, minute = 141100618, second = 149403544, second_part = 1130493544, neg = -108 '\224', 
  time_type = 149632480}
        lex = (LEX *) 0x8e7b788
        cs = (CHARSET_INFO *) 0x87928e0
        sp_db = 0x0
        sp_name = 0x8e92778 "bugsp"
        definer = 0x8e92780 "miguel@192.168.0.33"
#2  0x082f6211 in fill_schema_proc (thd=0x8e7b748, tables=0x8e90f90, cond=0x0) at sql_show.cc:2849
        proc_table = (TABLE *) 0x8e9ac40
        proc_tables = {next_local = 0x0, next_global = 0x0, prev_global = 0x0, db = 0x863df7b "mysql", alias = 0x

<cut>
[14 Dec 2005 21:50] Jason Senf
I have the same problem.
I created a stored procedure with the command line client, then I used the SQL Administrator to view the procedure.  As soon as I clicked the execute procedure button, my server crashed.
I used the system tray monitor to restart the server which works fine, however, if I try to use the administrator to view any of te schemas, the server crashes.

On the other hand, if I restart the server and use the command line client, everything seems to work fine, including the stored procedures I had created prior to the initial crash.

I think the problem might lie within the Administrator program, but I am not sure.

I am using MySQL, J2SE, Netbeans on a Windows XP home edition Dell computer.  this is for a school project.

Jason
[15 Dec 2005 11:25] MySQL Verification Team
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html