Bug #85575 Assertion `strlen(db) <= (64*3) && strlen(name) <= (64*3)' failed.
Submitted: 22 Mar 2017 2:48 Modified: 24 Mar 2017 9:58
Reporter: Roel Van de Paar Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: DDL Severity:S6 (Debug Builds)
Version:5.6.35 OS:Any
Assigned to: CPU Architecture:Any

[22 Mar 2017 2:48] Roel Van de Paar
Description:
(gdb) bt
#0  __pthread_kill (threadid=<optimised out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:62
#1  0x000055e8ecca333a in my_write_core (sig=6) at /git/MS56_dbg/mysys/stacktrace.c:424
#2  0x000055e8ec9014a2 in handle_fatal_signal (sig=6) at /git/MS56_dbg/sql/signal_handler.cc:230
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
#5  0x00007fa89bc683ea in __GI_abort () at abort.c:89
#6  0x00007fa89bc5ebb7 in __assert_fail_base (fmt=<optimised out>, 
    assertion=assertion@entry=0x55e8ed0b0120 "strlen(db) <= (64*3) && strlen(name) <= (64*3)", file=file@entry=0x55e8ed0b0101 "/git/MS56_dbg/sql/mdl.h", 
    line=line@entry=343, 
    function=function@entry=0x55e8ed0b0940 <MDL_key::mdl_key_init(MDL_key::enum_mdl_namespace, char const*, char const*)::__PRETTY_FUNCTION__> "void MDL_key::mdl_key_init(MDL_key::enum_mdl_namespace, const char*, const char*)") at assert.c:92
#7  0x00007fa89bc5ec62 in __GI___assert_fail (assertion=0x55e8ed0b0120 "strlen(db) <= (64*3) && strlen(name) <= (64*3)", 
    file=0x55e8ed0b0101 "/git/MS56_dbg/sql/mdl.h", line=343, 
    function=0x55e8ed0b0940 <MDL_key::mdl_key_init(MDL_key::enum_mdl_namespace, char const*, char const*)::__PRETTY_FUNCTION__> "void MDL_key::mdl_key_init(MDL_key::enum_mdl_namespace, const char*, const char*)") at assert.c:101
#8  0x000055e8ec8ef00a in MDL_key::mdl_key_init (this=0x7fa89dd99310, mdl_namespace=MDL_key::FUNCTION, db=0x7fa87e01f230 "test", 
    name=0x7fa87e01f238 "f111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhhhhhhhhhiiiiiiiiiijjjjjjjjjjkk") at /git/MS56_dbg/sql/mdl.h:343
#9  0x000055e8ec8ebd81 in MDL_request::init (this=0x7fa89dd992f0, mdl_namespace=MDL_key::FUNCTION, db_arg=0x7fa87e01f230 "test", 
    name_arg=0x7fa87e01f238 "f111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhhhhhhhhhiiiiiiiiiijjjjjjjjjjkk", mdl_type_arg=MDL_EXCLUSIVE, mdl_duration_arg=MDL_TRANSACTION)
    at /git/MS56_dbg/sql/mdl.cc:1136
#10 0x000055e8ecb2ddae in lock_object_name (thd=0x7fa885e7a000, mdl_type=MDL_key::FUNCTION, db=0x7fa87e01f230 "test", 
    name=0x7fa87e01f238 "f111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhhhhhhhhhiiiiiiiiiijjjjjjjjjjkk") at /git/MS56_dbg/sql/lock.cc:853
#11 0x000055e8ec90478d in sp_drop_routine (thd=0x7fa885e7a000, type=SP_TYPE_FUNCTION, name=0x7fa87e01f300) at /git/MS56_dbg/sql/sp.cc:1285
#12 0x000055e8ec9bcf7d in mysql_execute_command (thd=0x7fa885e7a000) at /git/MS56_dbg/sql/sql_parse.cc:4759
#13 0x000055e8ec9c146d in mysql_parse (thd=0x7fa885e7a000, 
    rawbuf=0x7fa87e01f010 "drop function test.f111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhhhhhhhhhiiiiiiiiii"..., length=212, parser_state=0x7fa89dd9a680)
    at /git/MS56_dbg/sql/sql_parse.cc:6433
#14 0x000055e8ec9b3c91 in dispatch_command (command=COM_QUERY, thd=0x7fa885e7a000, 
    packet=0x7fa885e5e001 "drop function test.f111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhhhhhhhhhiiiiiiiiii"..., packet_length=212) at /git/MS56_dbg/sql/sql_parse.cc:1372
#15 0x000055e8ec9b2bff in do_command (thd=0x7fa885e7a000) at /git/MS56_dbg/sql/sql_parse.cc:1039
#16 0x000055e8ec978892 in do_handle_one_connection (thd_arg=0x7fa885e7a000) at /git/MS56_dbg/sql/sql_connect.cc:982
#17 0x000055e8ec9785d7 in handle_one_connection (arg=0x7fa885e7a000) at /git/MS56_dbg/sql/sql_connect.cc:899
#18 0x000055e8ed01fb19 in pfs_spawn_thread (arg=0x7fa897bf46a0) at /git/MS56_dbg/storage/perfschema/pfs.cc:1860
#19 0x00007fa89c8a76ca in start_thread (arg=0x7fa89dd9b700) at pthread_create.c:333
#20 0x00007fa89bd390af in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

How to repeat:
DROP DATABASE test;
drop function test.f111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhhhhhhhhhiiiiiiiiiijjjjjjjjjjkk;
[22 Mar 2017 4:52] MySQL Verification Team
Hello Roel,

Thank you for the report and test case.
Observed that 5.6.35 debug build is affected.

Thanks,
Umesh
[24 Mar 2017 9:57] Ståle Deraas
Posted by developer:
 
This bug is fixed in 5.7.5. See Bug#17903490: ASSERT FAILURE IN MDL.H WHEN DROP FUNCTION CALLED WITH INVALID FUNCTION NAME