Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-15936

Crashes with varying stack trace on Windows with Spider engine

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s: 10.2.14
    • Fix Version/s: N/A
    • Labels:
      None
    • Environment:
      Windows

      Description

      There have been a total of ten crashes by now, with eight more or less distinct backtraces.
      When having a closer look at the backtraces they don't really seem to make sense, showing call sequences that include functions that can't possibly call the next function in the trace.

      So it looks as if we're actually facing a stack smashing bug here.

      Below are the extracted stack traces, demangled with the help of https://demangler.com/

      Full error log is available on demand, and core-dump has now been added to the configuration to hopefully get better debug info from that.

      Trace #1

      mysqld.exe!private: void __cdecl QUERY_PROFILE::new_status(char const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned int) __ptr64
      mysqld.exe!public: void __cdecl THD::enter_stage(struct PSI_stage_info_v1 const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned int) __ptr64
      mysqld.exe!set_thd_stage_info()
      mysqld.exe!public: BOOL __cdecl Query_cache::try_lock(class THD * __ptr64,enum Query_cache::Cache_try_lock_mode) __ptr64
      mysqld.exe!public: void __cdecl Query_cache::insert(class THD * __ptr64,struct Query_cache_tls * __ptr64,char const * __ptr64,unsigned long,unsigned int) __ptr64
      mysqld.exe!void __cdecl query_cache_insert(void * __ptr64,char const * __ptr64,unsigned long,unsigned int)
      mysqld.exe!net_real_write()
      mysqld.exe!net_flush()
      mysqld.exe!net_write_command()
      mysqld.exe!cli_advanced_command()
      mysqld.exe!mysql_send_query()
      mysqld.exe!mysql_real_query()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      mysqld.exe!pthread_join()
      mysqld.exe!public: virtual void __cdecl Item::traverse_cond(void (__cdecl*)(class Item const * __ptr64,void * __ptr64),void * __ptr64,enum Item::traverse_order) __ptr64
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
      

      Trace #2

      mysqld.exe!public: void __cdecl Query_cache::insert(class THD * __ptr64,struct Query_cache_tls * __ptr64,char const * __ptr64,unsigned long,unsigned int) __ptr64
      mysqld.exe!void __cdecl query_cache_insert(void * __ptr64,char const * __ptr64,unsigned long,unsigned int)
      mysqld.exe!net_real_write()
      mysqld.exe!net_flush()
      mysqld.exe!net_write_command()
      mysqld.exe!cli_advanced_command()
      mysqld.exe!mysql_close_slow_part()
      mysqld.exe!mysql_close()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      mysqld.exe!int __cdecl ha_finalize_handlerton(struct st_plugin_int * __ptr64)
      mysqld.exe!BOOL __cdecl mysql_uninstall_plugin(class THD * __ptr64,struct st_mysql_lex_string const * __ptr64,struct st_mysql_lex_string const * __ptr64)
      mysqld.exe!public: unsigned char * __ptr64 __cdecl sys_var_pluginvar::real_value_ptr(class THD * __ptr64,enum enum_var_type) __ptr64
      mysqld.exe!void __cdecl plugin_shutdown(void)
      mysqld.exe!public: char * __ptr64 __cdecl String::c_ptr_safe(void) __ptr64
      mysqld.exe!void __cdecl unireg_end(void)
      mysqld.exe!void __cdecl kill_mysql(class THD * __ptr64)
      mysqld.exe!handle_shutdown()
      mysqld.exe!pthread_join()
      mysqld.exe!public: virtual void __cdecl Item::traverse_cond(void (__cdecl*)(class Item const * __ptr64,void * __ptr64),void * __ptr64,enum Item::traverse_order) __ptr64
      

      Trace #3

      mysqld.exe!private: void __cdecl QUERY_PROFILE::new_status(char const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned int) __ptr64
      mysqld.exe!public: void __cdecl THD::enter_stage(struct PSI_stage_info_v1 const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned int) __ptr64
      mysqld.exe!set_thd_stage_info()
      mysqld.exe!public: BOOL __cdecl Query_cache::try_lock(class THD * __ptr64,enum Query_cache::Cache_try_lock_mode) __ptr64
      mysqld.exe!public: void __cdecl Query_cache::insert(class THD * __ptr64,struct Query_cache_tls * __ptr64,char const * __ptr64,unsigned long,unsigned int) __ptr64
      mysqld.exe!void __cdecl query_cache_insert(void * __ptr64,char const * __ptr64,unsigned long,unsigned int)
      mysqld.exe!net_real_write()
      mysqld.exe!net_flush()
      mysqld.exe!net_write_command()
      mysqld.exe!cli_advanced_command()
      mysqld.exe!mysql_send_query()
      mysqld.exe!mysql_real_query()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      mysqld.exe!pthread_join()
      mysqld.exe!public: virtual void __cdecl Item::traverse_cond(void (__cdecl*)(class Item const * __ptr64,void * __ptr64),void * __ptr64,enum Item::traverse_order) __ptr64
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
      

      Trace #4

      mysqld.exe!private: void __cdecl QUERY_PROFILE::new_status(char const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned int) __ptr64
      mysqld.exe!public: void __cdecl THD::enter_stage(struct PSI_stage_info_v1 const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned int) __ptr64
      mysqld.exe!set_thd_stage_info()
      mysqld.exe!public: BOOL __cdecl Query_cache::try_lock(class THD * __ptr64,enum Query_cache::Cache_try_lock_mode) __ptr64
      mysqld.exe!public: void __cdecl Query_cache::insert(class THD * __ptr64,struct Query_cache_tls * __ptr64,char const * __ptr64,unsigned long,unsigned int) __ptr64
      mysqld.exe!void __cdecl query_cache_insert(void * __ptr64,char const * __ptr64,unsigned long,unsigned int)
      mysqld.exe!net_real_write()
      mysqld.exe!net_flush()
      mysqld.exe!net_write_command()
      mysqld.exe!cli_advanced_command()
      mysqld.exe!mysql_select_db()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      mysqld.exe!pthread_join()
      mysqld.exe!public: virtual void __cdecl Item::traverse_cond(void (__cdecl*)(class Item const * __ptr64,void * __ptr64),void * __ptr64,enum Item::traverse_order) __ptr64
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
      

      Trace #5

      mysqld.exe!public: unsigned int __cdecl Query_cache_block::headers_len(void) __ptr64
      mysqld.exe!public: unsigned char * __ptr64 __cdecl Query_cache_block::data(void) __ptr64
      mysqld.exe!public: void __cdecl Query_cache::insert(class THD * __ptr64,struct Query_cache_tls * __ptr64,char const * __ptr64,unsigned long,unsigned int) __ptr64
      mysqld.exe!void __cdecl query_cache_insert(void * __ptr64,char const * __ptr64,unsigned long,unsigned int)
      mysqld.exe!net_real_write()
      mysqld.exe!net_flush()
      mysqld.exe!net_write_command()
      mysqld.exe!cli_advanced_command()
      mysqld.exe!mysql_send_query()
      mysqld.exe!mysql_real_query()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      mysqld.exe!pthread_join()
      mysqld.exe!public: virtual void __cdecl Item::traverse_cond(void (__cdecl*)(class Item const * __ptr64,void * __ptr64),void * __ptr64,enum Item::traverse_order) __ptr64
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
      

      Trace #6

      mysqld.exe!protected: char __cdecl Query_cache::append_result_data(struct Query_cache_block * __ptr64 * __ptr64,unsigned long,unsigned char * __ptr64,struct Query_cache_block * __ptr64) __ptr64
      mysqld.exe!public: void __cdecl Query_cache::insert(class THD * __ptr64,struct Query_cache_tls * __ptr64,char const * __ptr64,unsigned long,unsigned int) __ptr64
      mysqld.exe!void __cdecl query_cache_insert(void * __ptr64,char const * __ptr64,unsigned long,unsigned int)
      mysqld.exe!net_real_write()
      mysqld.exe!net_flush()
      mysqld.exe!net_write_command()
      mysqld.exe!cli_advanced_command()
      mysqld.exe!mysql_send_query()
      mysqld.exe!mysql_real_query()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      mysqld.exe!pthread_join()
      mysqld.exe!public: virtual void __cdecl Item::traverse_cond(void (__cdecl*)(class Item const * __ptr64,void * __ptr64),void * __ptr64,enum Item::traverse_order) __ptr64
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
      

      Trace #7

      mysqld.exe!public: unsigned int __cdecl Query_cache_block::headers_len(void) __ptr64
      mysqld.exe!public: unsigned char * __ptr64 __cdecl Query_cache_block::data(void) __ptr64
      mysqld.exe!public: void __cdecl Query_cache::insert(class THD * __ptr64,struct Query_cache_tls * __ptr64,char const * __ptr64,unsigned long,unsigned int) __ptr64
      mysqld.exe!void __cdecl query_cache_insert(void * __ptr64,char const * __ptr64,unsigned long,unsigned int)
      mysqld.exe!net_real_write()
      mysqld.exe!net_flush()
      mysqld.exe!net_write_command()
      mysqld.exe!cli_advanced_command()
      mysqld.exe!mysql_select_db()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      mysqld.exe!pthread_join()
      mysqld.exe!public: virtual void __cdecl Item::traverse_cond(void (__cdecl*)(class Item const * __ptr64,void * __ptr64),void * __ptr64,enum Item::traverse_order) __ptr64
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
      

      Trace #8

      mysqld.exe!public: __cdecl Trigger::~Trigger(void) __ptr64
      mysqld.exe!public: __cdecl Table_triggers_list::~Table_triggers_list(void) __ptr64
      mysqld.exe!public: __cdecl Table_cache_instance::~Table_cache_instance(void) __ptr64
      mysqld.exe!void __cdecl tc_add_table(class THD * __ptr64,struct TABLE * __ptr64)
      mysqld.exe!BOOL __cdecl open_table(class THD * __ptr64,struct TABLE_LIST * __ptr64,class Open_table_context * __ptr64)
      mysqld.exe!BOOL __cdecl open_and_lock_tables(class THD * __ptr64,struct DDL_options_st const & __ptr64,struct TABLE_LIST * __ptr64,BOOL,unsigned int,class Prelocking_strategy * __ptr64)
      mysqld.exe!BOOL __cdecl open_tables(class THD * __ptr64,struct DDL_options_st const & __ptr64,struct TABLE_LIST * __ptr64 * __ptr64,unsigned int * __ptr64,unsigned int,class Prelocking_strategy * __ptr64)
      mysqld.exe!BOOL __cdecl open_and_lock_tables(class THD * __ptr64,struct DDL_options_st const & __ptr64,struct TABLE_LIST * __ptr64,BOOL,unsigned int,class Prelocking_strategy * __ptr64)
      mysqld.exe!void __cdecl execute_init_command(class THD * __ptr64,struct st_mysql_lex_string * __ptr64,struct st_mysql_rwlock * __ptr64)
      mysqld.exe!int __cdecl mysql_execute_command(class THD * __ptr64)
      mysqld.exe!void __cdecl mysql_parse(class THD * __ptr64,char * __ptr64,unsigned int,class Parser_state * __ptr64,BOOL,BOOL)
      mysqld.exe!BOOL __cdecl dispatch_command(enum enum_server_command,class THD * __ptr64,char * __ptr64,unsigned int,BOOL,BOOL)
      mysqld.exe!BOOL __cdecl do_command(class THD * __ptr64)
      mysqld.exe!void __cdecl pool_of_threads_scheduler(struct scheduler_functions * __ptr64,unsigned long * __ptr64,unsigned int * __ptr64)
      mysqld.exe!void __cdecl tp_callback(struct TP_connection * __ptr64)
      ntdll.dll!RtlReleaseSRWLockExclusive()
      ntdll.dll!RtlReleaseSRWLockExclusive()
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
      

      Trace #9

      mysqld.exe!thd_increment_bytes_sent()
      mysqld.exe!net_real_write()
      mysqld.exe!net_flush()
      mysqld.exe!net_write_command()
      mysqld.exe!cli_advanced_command()
      mysqld.exe!mysql_send_query()
      mysqld.exe!mysql_real_query()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      mysqld.exe!pthread_join()
      mysqld.exe!public: virtual void __cdecl Item::traverse_cond(void (__cdecl*)(class Item const * __ptr64,void * __ptr64),void * __ptr64,enum Item::traverse_order) __ptr64
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
      

      Trace #10

      mysqld.exe!private: void __cdecl QUERY_PROFILE::new_status(char const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned int) __ptr64
      mysqld.exe!public: void __cdecl THD::enter_stage(struct PSI_stage_info_v1 const * __ptr64,char const * __ptr64,char const * __ptr64,unsigned int) __ptr64
      mysqld.exe!set_thd_stage_info()
      mysqld.exe!public: BOOL __cdecl Query_cache::try_lock(class THD * __ptr64,enum Query_cache::Cache_try_lock_mode) __ptr64
      mysqld.exe!public: void __cdecl Query_cache::insert(class THD * __ptr64,struct Query_cache_tls * __ptr64,char const * __ptr64,unsigned long,unsigned int) __ptr64
      mysqld.exe!void __cdecl query_cache_insert(void * __ptr64,char const * __ptr64,unsigned long,unsigned int)
      mysqld.exe!net_real_write()
      mysqld.exe!net_flush()
      mysqld.exe!net_write_command()
      mysqld.exe!cli_advanced_command()
      mysqld.exe!mysql_send_query()
      mysqld.exe!mysql_real_query()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_deinit()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      ha_spider.dll!spider_flush_table_mon_cache_init()
      mysqld.exe!pthread_join()
      mysqld.exe!public: virtual void __cdecl Item::traverse_cond(void (__cdecl*)(class Item const * __ptr64,void * __ptr64),void * __ptr64,enum Item::traverse_order) __ptr64
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              jacob-mathew Jacob Mathew (Inactive)
              Reporter:
              niljoshi Nilnandan Joshi
              Votes:
              3 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: