← Back to team overview

maria-developers team mailing list archive

Issue with commit 0f43279c / MDEV-13936

 

Hi All,
Since some time ago, my app crashed the server (10.2.-ext) in some case (repeatable) with the following stack trace :

On Linux Centos 7:

./sql/mysqld(my_print_stacktrace+0x38)[0x7f463f49a093]
./sql/mysqld(handle_fatal_signal+0x3a3)[0x7f463ed2747a]
/lib64/libpthread.so.0(+0xf370)[0x7f463dffd370]
./sql/mysqld(_ZN13Explain_query10get_selectEj+0x40)[0x7f463ebf4d06]
./sql/mysqld(_ZN13Explain_query8add_nodeEP12Explain_node+0x203)[0x7f463ebf4f15]
./sql/mysqld(_ZN4JOIN24save_explain_data_internEP13Explain_querybbbPKc+0x959)[0x7f463eaf3db9]
./sql/mysqld(_ZN4JOIN17save_explain_dataEP13Explain_querybbbb+0x14b)[0x7f463eabb963]
./sql/mysqld(_ZN4JOIN13build_explainEv+0xe2)[0x7f463eab3b70]
./sql/mysqld(_ZN4JOIN8optimizeEv+0xb6)[0x7f463eab3d2e]
./sql/mysqld(_ZN13st_select_lex31optimize_unflattened_subqueriesEb+0x263)[0x7f463ea57b5d]
./sql/mysqld(_ZN4JOIN31optimize_unflattened_subqueriesEv+0x24)[0x7f463ec1b746]
./sql/mysqld(_ZN4JOIN15optimize_stage2Ev+0x1cdb)[0x7f463eab7171]
./sql/mysqld(_ZN4JOIN14optimize_innerEv+0x14dd)[0x7f463eab542d]
./sql/mysqld(_ZN4JOIN8optimizeEv+0x7a)[0x7f463eab3cf2]
./sql/mysqld(_Z12mysql_selectP3THDP10TABLE_LISTjR4ListI4ItemEPS4_jP8st_orderS9_S7_S9_yP13select_resultP18st_select_lex_unitP13st_select_lex+0x263)[0x7f463eabccd2]
./sql/mysqld(_Z13handle_selectP3THDP3LEXP13select_resultm+0x16c)[0x7f463eab13e6]
./sql/mysqld(_Z21mysql_execute_commandP3THD+0x4b5b)[0x7f463ea76fb4]
./sql/mysqld(_ZN13sp_instr_stmt9exec_coreEP3THDPj+0x80)[0x7f463eeaafb0]
./sql/mysqld(_ZN13sp_lex_keeper23reset_lex_and_exec_coreEP3THDPjbP8sp_instr+0x1d1)[0x7f463eeaa549]
./sql/mysqld(_ZN13sp_instr_stmt7executeEP3THDPj+0x1b5)[0x7f463eeaabf9]
./sql/mysqld(_ZN7sp_head7executeEP3THDb+0x754)[0x7f463eea4ff6]
./sql/mysqld(_ZN7sp_head17execute_procedureEP3THDP4ListI4ItemE+0x971)[0x7f463eea74df]
./sql/mysqld(+0x645959)[0x7f463ea71959]
./sql/mysqld(_ZN12Sql_cmd_call7executeEP3THD+0x270)[0x7f463ea7240c]
./sql/mysqld(_Z21mysql_execute_commandP3THD+0x9f95)[0x7f463ea7c3ee]
./sql/mysqld(_ZN18Prepared_statement7executeEP6Stringb+0x508)[0x7f463ea9e468]
./sql/mysqld(_ZN18Prepared_statement12execute_loopEP6StringbPhS2_+0x200)[0x7f463ea9c6fa]
./sql/mysqld(+0x66e113)[0x7f463ea9a113]
./sql/mysqld(_Z19mysqld_stmt_executeP3THDPcj+0x97)[0x7f463ea99cd7]
./sql/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcjbb+0xc9e)[0x7f463ea6e68d]
./sql/mysqld(_Z10do_commandP3THD+0x700)[0x7f463ea6d315]
./sql/mysqld(_Z24do_handle_one_connectionP7CONNECT+0x1ca)[0x7f463ebbe3d2]
./sql/mysqld(handle_one_connection+0x30)[0x7f463ebbe125]
./sql/mysqld(+0x1012852)[0x7f463f43e852]
/lib64/libpthread.so.0(+0x7dc5)[0x7f463dff5dc5]
/lib64/libc.so.6(clone+0x6d)[0x7f463c01673d]

Or on Windows :
Unhandled exception thrown: read access violation.
Dynamic_array<Explain_select *>::at(...) returned 0xDB925000.

>             mysqld.exe!Explain_query::~Explain_query() Line 71   C++
               mysqld.exe!Explain_query::`scalar deleting destructor'(unsigned int)  C++
               mysqld.exe!delete_explain_query(LEX * lex) Line 2397              C++
               mysqld.exe!sp_lex_keeper::reset_lex_and_exec_core(THD * thd, unsigned int * nextp, bool open_tables, sp_instr * instr) Line 3130           C++
               mysqld.exe!sp_instr_stmt::execute(THD * thd, unsigned int * nextp) Line 3266            C++
               mysqld.exe!sp_head::execute(THD * thd, bool merge_da_on_success) Line 1213        C++
               mysqld.exe!sp_head::execute_procedure(THD * thd, List<Item> * args) Line 2072      C++
               mysqld.exe!do_execute_sp(THD * thd, sp_head * sp) Line 2907           C++
               mysqld.exe!Sql_cmd_call::execute(THD * thd) Line 3147           C++
               mysqld.exe!mysql_execute_command(THD * thd) Line 6223   C++
               mysqld.exe!Prepared_statement::execute(String * expanded_query, bool open_cursor) Line 4682   C++
               mysqld.exe!Prepared_statement::execute_loop(String * expanded_query, bool open_cursor, unsigned char * packet, unsigned char * packet_end) Line 4111               C++
               mysqld.exe!mysql_stmt_execute_common(THD * thd, unsigned long stmt_id, unsigned char * packet, unsigned char * packet_end, unsigned long cursor_flags, bool bulk_op, bool read_types) Line 3132        C++
               mysqld.exe!mysqld_stmt_execute(THD * thd, char * packet_arg, unsigned int packet_length) Line 3028         C++
               mysqld.exe!dispatch_command(enum_server_command command, THD * thd, char * packet, unsigned int packet_length, bool is_com_multi, bool is_next_command) Line 1763                C++
               mysqld.exe!do_command(THD * thd) Line 1369             C++
               mysqld.exe!threadpool_process_request(THD * thd) Line 366               C++
               mysqld.exe!tp_callback(TP_connection * c) Line 192    C++
               mysqld.exe!tp_callback(_TP_CALLBACK_INSTANCE * instance, void * context) Line 377            C++
               mysqld.exe!work_callback(_TP_CALLBACK_INSTANCE * instance, void * context, _TP_WORK * work) Line 451                C++

The sql statement involved (in a stored procedure):
Query (0x7f457df65bb8): INSERT INTO qnwtc( enrqnwtc, priqnwtc, lprqnwtc, cprqnwtc, nuiqnwtc) SELECT 'PRI' ,occgtpar ,intgtpar ,ch1gtpar , NAME_CONST('wpio_ident',110325)FROM gtpara WHERE padgtpar = 'PRIQNTAC' AND numgtets =  NAME_CONST('wsysets',_utf8'IFR' COLLATE 'utf8_bin')AND etagtpar = 'A'

Where gtpara is a view.

If the stored procedure is called alone, it works fine.
I've revert commit 0f43279c (MDEV-13936) and now my app works fine again.

Regards.