HandlerSocket-Plugin-for-MySQL
HandlerSocket-Plugin-for-MySQL copied to clipboard
[ERROR] mysqld got signal 6 (indexid > 32bit)
Thread pointer: 0x33e5b590
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x4d1de0e0 thread_stack 0x48000
/usr/sbin/mysqld(my_print_stacktrace+0x2e) [0x9a092e]
/usr/sbin/mysqld(handle_segfault+0x393) [0x5ee413]
/lib64/libpthread.so.0 [0x331a00eb70]
/lib64/libc.so.6(gsignal+0x35) [0x3319c30265]
/lib64/libc.so.6(abort+0x110) [0x3319c31d10]
/usr/lib64/libstdc++.so.6(__gnu_cxx::__verbose_terminate_handler()+0x114) [0x331acbed14]
/usr/lib64/libstdc++.so.6 [0x331acbce16]
/usr/lib64/libstdc++.so.6 [0x331acbce43]
/usr/lib64/libstdc++.so.6 [0x331acbcf2a]
/usr/lib64/libstdc++.so.6(operator new(unsigned long)+0x79) [0x331acbd239]
/usr/lib64/mysql/plugin/handlersocket.so(std::vector<dena::prep_stmt, std::allocator<dena::prep_stmt> >::_M_fill_insert(__gnu_cxx::__normal_iterator<dena::prep_stmt*, std::vector<dena::prep_stmt, std::allocator<dena::prep_stmt> > >, unsigned long, dena::prep_stmt const&)+0xbd) [0x7f7bacfb2d9d]
/usr/lib64/mysql/plugin/handlersocket.so(dena::hstcpsvr_conn::dbcb_set_prep_stmt(unsigned long, dena::prep_stmt const&)+0xe1) [0x7f7bacfad6d1]
/usr/lib64/mysql/plugin/handlersocket.so(dena::dbcontext::cmd_open(dena::dbcallback_i&, dena::cmd_open_args const&)+0x6a4) [0x7f7bacfa9ae4]
/usr/lib64/mysql/plugin/handlersocket.so(dena::hstcpsvr_worker::do_open_index(char*, char*, dena::hstcpsvr_conn&)+0x1c2) [0x7f7bacfaebf2]
/usr/lib64/mysql/plugin/handlersocket.so(dena::hstcpsvr_worker::execute_lines(dena::hstcpsvr_conn&)+0x65) [0x7f7bacfaedf5]
/usr/lib64/mysql/plugin/handlersocket.so(dena::hstcpsvr_worker::run_one_ep()+0x588) [0x7f7bacfaf968]
/usr/lib64/mysql/plugin/handlersocket.so(dena::hstcpsvr_worker::run()+0xa6) [0x7f7bacfb0626]
/usr/lib64/mysql/plugin/handlersocket.so(dena::thread<dena::worker_throbj>::thread_main(void*)+0xd) [0x7f7bacfb56bd]
/lib64/libpthread.so.0 [0x331a00673d]
/lib64/libc.so.6(clone+0x6d) [0x3319cd44bd]
trying to find out test case.
if indexid greater than 32 bit sigfault occurs)
simple test case:
CREATE TABLE `test` (
`col1` int(10) unsigned NOT NULL AUTO_INCREMENT,
`col2` text CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL,
PRIMARY KEY (`col1`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251
> telnet mysql 9998
Trying 192.168.0.0...
Connected to mysql (192.168.0.0).
Escape character is '^]'.
P 787896897787844780957809 db test PRIMARY col2
Connection closed by foreign host.
got it)
It's because of an out of memory. You should use smaller index ids as far as possible. Currently no limit checking is performed for index ids.