Mysql崩溃 – 插件库

我想问一下,如果从下面的日志中我们可以说Mysql的崩溃是因为我们为Mysql定制的吗?

Sep 26 15:24:30 mysqld: /usr/lib/mysql/plugin/my_lib_discounts.so(_ZN13CDiscountCalcD1Ev+0x52)[0x7f5da35439da] Sep 26 15:24:30 mysqld: /usr/lib/mysql/plugin/my_lib_discounts.so(my_lib_discountsAgg_deinit+0x31)[0x7f5da35431be] 

整个日志:

 Sep 26 15:24:30 mysqld: Thread pointer: 0x7f5d980ab690 Sep 26 15:24:30 mysqld: Attempting backtrace. You can use the following information to find out Sep 26 15:24:30 mysqld: where mysqld died. If you see no messages after this, something went Sep 26 15:24:30 mysqld: terribly wrong... Sep 26 15:24:30 mysqld: stack_bottom = 7f5da2d9de88 thread_stack 0x80000 Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(my_print_stacktrace+0x2e)[0x7f5f02247ade] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(handle_fatal_signal+0x493)[0x7f5f020fe253] Sep 26 15:24:30 mysqld: /lib/libpthread.so.0(+0xeff0)[0x7f5f018b3ff0] Sep 26 15:24:30 mysqld: /lib/libc.so.6(gsignal+0x35)[0x7f5f00164ed5] Sep 26 15:24:30 mysqld: /lib/libc.so.6(abort+0x180)[0x7f5f00167ce0] Sep 26 15:24:30 mysqld: /lib/libc.so.6(+0x682db)[0x7f5f0019b2db] Sep 26 15:24:30 mysqld: /lib/libc.so.6(+0x71b36)[0x7f5f001a4b36] Sep 26 15:24:30 mysqld: /lib/libc.so.6(cfree+0x6c)[0x7f5f001a98ac] Sep 26 15:24:30 mysqld: /usr/lib/mysql/plugin/my_lib_discounts.so(_ZN13CDiscountCalcD1Ev+0x52)[0x7f5da35439da] Sep 26 15:24:30 mysqld: /usr/lib/mysql/plugin/my_lib_discounts.so(my_lib_discountsAgg_deinit+0x31)[0x7f5da35431be] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(_ZN11udf_handler7cleanupEv+0x31)[0x7f5f02156bc1] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(_ZN12Item_udf_sum7cleanupEv+0x10)[0x7f5f021863c0] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(_ZN4JOIN7destroyEv+0x17e)[0x7f5f020183be] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(_ZN13st_select_lex7cleanupEv+0x22)[0x7f5f0205feb2] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(_Z12mysql_selectP3THDPPP4ItemP10TABLE_LISTjR4ListIS1_ES2_jP8st_orderSB_S2_SB_yP13select_resultP18st_select_lex_unitP13st_select_lex+0x233)[0x7f5f0202af53] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(_Z13handle_selectP3THDP3LEXP13select_resultm+0x174)[0x7f5f02030954] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(+0x30a287)[0x7f5f01feb287] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x1be4)[0x7f5f01ff01b4] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x246)[0x7f5f01ff2e26] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x1d42)[0x7f5f01ff53d2] Sep 26 15:24:30mysqld: /usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x10e)[0x7f5f0209724e] Sep 26 15:24:30 mysqld: /usr/sbin/mysqld(handle_one_connection+0x50)[0x7f5f02097370] Sep 26 15:24:30 mysqld: /lib/libpthread.so.0(+0x68ca)[0x7f5f018ab8ca] Sep 26 15:24:30 mysqld: /lib/libc.so.6(clone+0x6d)[0x7f5f002027dd] Sep 26 15:24:30 mysqld: Sep 26 15:24:30 mysqld: Trying to get some variables. Sep 26 15:24:30 mysqld: Some pointers may be invalid and cause the dump to abort. Sep 26 15:24:30 mysqld: Query (7f5d980cdd90): is an invalid pointer Sep 26 15:24:30 mysqld: Connection ID (thread ID): 1087 Sep 26 15:24:30 mysqld: Status: NOT_KILLED 

操作系统:Debian GNU / Linux 6.0

Mysql:服务器版本5.5.38

我们没有安装任何新的软件包。

问题时有发生。 有时候一天三次,大约五天就没问题了,等等。 在错误日志中,我们可以看到有一行与我们的插件的名称为MySQL – 但我不知道这是主要原因还是只有加载模块的信息。

首先,值得指出的是,日志中的输出结果实际上是什么,因为你对此很困惑。

日志中的跟踪显示崩溃发生时的调用堆栈,即它是导致崩溃的函数调用的“path”的列表。

虽然不是绝对的结论性的,但看起来很可能是因为你的插件(我认为可能更有可能出现问题,而不是太不公平)是导致崩溃的调用堆栈的一部分。
看起来它有一些内存pipe理问题(基于cfree调用不好)。

该插件的维护者应该看看这个。