[MDEV-23112] gcol.innodb_virtual_debug fails, NULL pointer derefence in dict_col_get_no() in purge Created: 2020-07-07  Updated: 2020-10-28  Resolved: 2020-08-06

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB, Tests, Virtual Columns
Affects Version/s: 10.5
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Vladislav Vaintroub Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: None

Issue Links:
Duplicate
duplicates MDEV-23111 gcol.innodb_virtual_debug failed in... Confirmed

 Description   

http://buildbot.askmonty.org/buildbot/builders/winx64-debug/builds/19935/steps/test/logs/stdio

Server log from this test:
----------SERVER LOG START-----------
200707  7:31:06 [ERROR] mysqld got exception 0xc0000005 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
 
To report this bug, see https://mariadb.com/kb/en/reporting-bugs
 
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed, 
something is definitely wrong and this may fail.
 
Server version: 10.5.5-MariaDB-debug-log
key_buffer_size=1048576
read_buffer_size=131072
max_used_connections=2
max_threads=65537
thread_count=2
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 4576 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
 
Thread pointer: 0x2ad491bb0c8
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...
server.dll!dict_col_get_no()[dict0dict.ic:151]
server.dll!row_upd_changes_ord_field_binary_func()[row0upd.cc:1381]
server.dll!row_purge_upd_exist_or_extern_func()[row0purge.cc:755]
server.dll!row_purge_record_func()[row0purge.cc:1071]
server.dll!row_purge()[row0purge.cc:1109]
server.dll!row_purge_step()[row0purge.cc:1160]
server.dll!que_thr_step()[que0que.cc:947]
server.dll!que_run_threads_low()[que0que.cc:1009]
server.dll!que_run_threads()[que0que.cc:1051]
server.dll!srv_task_execute()[srv0srv.cc:2031]
server.dll!purge_worker_callback()[srv0srv.cc:2195]
server.dll!tpool::task_group::execute()[task_group.cc:56]
server.dll!tpool::task::execute()[task.cc:48]
server.dll!tpool::thread_pool_win::task_callback()[tpool_win.cc:264]
ntdll.dll!RtlNtStatusToDosErrorNoTeb()
ntdll.dll!RtlReleaseSRWLockExclusive()
KERNEL32.DLL!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x0): 
Connection ID (thread ID): 0
Status: NOT_KILLED
 
Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
 
The manual page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mysqld/ contains
information that should help you find out what is causing the crash.
Writing a core file at D:\winx64-debug\build\mysql-test\var\1\mysqld.1\data\
Minidump written to D:\winx64-debug\build\mysql-test\var\1\mysqld.1\data\mariadbd.dmp
----------SERVER LOG END-------------
 
 
 - found 'mariadbd.dmp' (0/5)
 
Trying 'cdb' to get a backtrace
Output from cdb follows. Faulting thread is printed twice,with and without function parameters
Search for STACK_TEXT to see the stack trace of 
the faulting thread. Callstacks of other threads are printed after it.
 
Microsoft (R) Windows Debugger Version 10.0.16299.15 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
 
 
Loading Dump File [D:\winx64-debug\build\mysql-test\var\1\log\gcol.innodb_virtual_debug-innodb\mysqld.1\data\mariadbd.dmp]
User Mini Dump File: Only registers, stack and portions of memory are available
 
 
Response                         Time (ms)     Location
OK                                             D:\winx64-debug\build\sql\Debug
OK                                             C:\Windows\System32
OK                                             .
 
Response                         Time (ms)     Location
OK                                             D:\winx64-debug\build\sql\Debug
OK                                             C:\Windows\System32
OK                                             .
Deferred                                       cache*C:\cdb_symbols
Symbol search path is: D:\winx64-debug\build\sql\Debug;C:\Windows\System32;.;cache*C:\cdb_symbols
Executable search path is: D:\winx64-debug\build\sql\Debug;C:\Windows\System32;.
Windows 10 Version 17763 MP (4 procs) Free x64
Product: Server, suite: TerminalServer DataCenter SingleUserTS
17763.1.amd64fre.rs5_release.180914-1434
Machine Name:
Debug session time: Tue Jul  7 07:31:06.000 2020 (UTC + 0:00)
System Uptime: not available
Process Uptime: 0 days 0:00:24.000
..................................
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(14c8.18bc): Access violation - code c0000005 (first/second chance not available)
ntdll!NtGetContextThread:
             ret
0:014> cdb: Reading initial command '!sym prompts off; !analyze -v; .ecxr; !for_each_frame dv /t;!uniqstack -p;q'
quiet mode - symbol prompts off
 
 
 
DUMP_CLASS: 2
 
DUMP_QUALIFIER: 400
 
CONTEXT:  (.ecxr)
rax=0000000000000000 rbx=000002ad4930f6e0 rcx=0000000000000000
rdx=0000000000000000 rsi=000002ad4630abc0 rdi=000000f70c74e7a0
rip=00007ffc5e274b4b rsp=000000f70c74e580 rbp=000000f70c74f888
 r8=000002ad46300b78  r9=0000000000000000 r10=00007ffc5fcb442c
r11=000002ad49338458 r12=0000000000000000 r13=000002ad461ee640
r14=0000000000000000 r15=000000000000022c
iopl=0         nv up ei pl nz na pe nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010202
server!dict_col_get_no:
         mov     eax,dword ptr [rax+8] ds:00000000`00000008=????????
Resetting default scope
 
FAULTING_IP: 
server!dict_col_get_no+b [D:\winx64-debug\build\src\storage\innobase\include\dict0dict.ic @ 151]
         mov     eax,dword ptr [rax+8]
 
EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 00007ffc5e274b4b (server!dict_col_get_no)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 0000000000000000
   Parameter[1]: 0000000000000008
Attempt to read from address 0000000000000008

all stacks stack traces

rax=0000000000000000 rbx=000002ad4930f6e0 rcx=0000000000000000
rdx=0000000000000000 rsi=000002ad4630abc0 rdi=000000f70c74e7a0
rip=00007ffc5e274b4b rsp=000000f70c74e580 rbp=000000f70c74f888
 r8=000002ad46300b78  r9=0000000000000000 r10=00007ffc5fcb442c
r11=000002ad49338458 r12=0000000000000000 r13=000002ad461ee640
r14=0000000000000000 r15=000000000000022c
iopl=0         nv up ei pl nz na pe nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010202
server!dict_col_get_no:
         mov     eax,dword ptr [rax+8] ds:00000000`00000008=????????
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!dict_col_get_no [D:\winx64-debug\build\src\storage\innobase\include\dict0dict.ic @ 151]
struct dict_col_t * col = 0x00000000`00000000
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!row_upd_changes_ord_field_binary_func [D:\winx64-debug\build\src\storage\innobase\row\row0upd.cc @ 1381]
struct dict_col_t * col = 0x00000000`00000000
struct dfield_t dfield_ext = struct dfield_t
struct dict_field_t * ind_field = 0x000002ad`493162f0
unsigned int64 col_no = 0xcccccccc`cccccccc
unsigned int64 dfield_len = 0
bool is_virtual = true
unsigned char * buf = 0xcccccccc`cccccccc "--- memory read error at address 0xcccccccc`cccccccc ---"
struct upd_field_t * upd_field = 0xcccccccc`cccccccc
struct dict_v_col_t * vcol = 0x00000000`00000000
struct dfield_t * dfield = 0xcccccccc`cccccccc
struct dict_index_t * index = 0x000002ad`493c86f8
struct upd_t * update = 0x000002ad`493ab768
struct que_thr_t * thr = 0x000002ad`46300b78
struct dtuple_t * row = 0x00000000`00000000
struct row_ext_t * ext = 0x00000000`00000000
unsigned int64 flag = 0
unsigned int64 i = 0
unsigned int64 n_unique = 2
struct dict_index_t * clust_index = 0x000002ad`493c79f8
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!row_purge_upd_exist_or_extern_func [D:\winx64-debug\build\src\storage\innobase\row\row0purge.cc @ 755]
struct que_thr_t * thr = 0x000002ad`46300b78
struct purge_node_t * node = 0x000002ad`463026d8
unsigned char * undo_rec = 0x000002ad`4630d708 "--- memory read error at address 0x000002ad`4630d708 ---"
struct dict_index_t * index = 0xcccccccc`cccccccc
struct mem_block_info_t * heap = 0x000002ad`49338458
struct mtr_t mtr = struct mtr_t
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!row_purge_record_func [D:\winx64-debug\build\src\storage\innobase\row\row0purge.cc @ 1071]
struct purge_node_t * node = 0x000002ad`463026d8
unsigned char * undo_rec = 0x000002ad`4630d708 "--- memory read error at address 0x000002ad`4630d708 ---"
struct que_thr_t * thr = 0x000002ad`46300b78
bool updated_extern = false
bool purged = true
struct dict_index_t * clust_index = 0x000002ad`493c79f8
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!row_purge [D:\winx64-debug\build\src\storage\innobase\row\row0purge.cc @ 1109]
bool purged = true
bool updated_extern = false
struct purge_node_t * node = 0x000002ad`463026d8
unsigned char * undo_rec = 0x000002ad`4630d708 "--- memory read error at address 0x000002ad`4630d708 ---"
struct que_thr_t * thr = 0x000002ad`46300b78
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!row_purge_step [D:\winx64-debug\build\src\storage\innobase\row\row0purge.cc @ 1160]
struct trx_purge_rec_t purge_rec = struct trx_purge_rec_t
struct que_thr_t * thr = 0x000002ad`46300b78
struct purge_node_t * node = 0x000002ad`463026d8
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!que_thr_step [D:\winx64-debug\build\src\storage\innobase\que\que0que.cc @ 947]
struct que_thr_t * thr = 0x000002ad`46300b78
struct que_thr_t * old_thr = 0x000002ad`46300b78
void * node = 0x000002ad`463026d8
struct trx_t * trx = 0x000002ad`47e88060
unsigned int64 type = 0xd
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!que_run_threads_low [D:\winx64-debug\build\src\storage\innobase\que\que0que.cc @ 1009]
struct que_thr_t * thr = 0x000002ad`46300b78
struct que_thr_t * next_thr = 0x000002ad`46300b78
struct trx_t * trx = 0x000002ad`47e88060
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!que_run_threads [D:\winx64-debug\build\src\storage\innobase\que\que0que.cc @ 1051]
struct que_thr_t * thr = 0x000002ad`46300b78
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!srv_task_execute [D:\winx64-debug\build\src\storage\innobase\srv\srv0srv.cc @ 2031]
struct que_thr_t * thr = 0x000002ad`46300b78
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!purge_worker_callback [D:\winx64-debug\build\src\storage\innobase\srv\srv0srv.cc @ 2195]
void * __formal = 0x00000000`00000000
void * ctx = 0x000002ad`491c4b20
class THD * thd = 0x000002ad`491bb0c8
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!tpool::task_group::execute [D:\winx64-debug\build\src\tpool\task_group.cc @ 56]
class tpool::task_group * this = 0x00007ffc`61052570
class tpool::task * t = 0x00007ffc`610526d0
class std::unique_lock<std::mutex> lk = class std::unique_lock<std::mutex>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!tpool::task::execute [D:\winx64-debug\build\src\tpool\task.cc @ 48]
class tpool::task * this = 0x00007ffc`610526d0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!tpool::thread_pool_win::task_callback [D:\winx64-debug\build\src\tpool\tpool_win.cc @ 264]
struct _TP_CALLBACK_INSTANCE * __formal = 0x000000f7`0c74f888
void * param = 0x000002ad`461ee610
struct tpool::thread_pool_win::task_cache_entry * entry = 0x000002ad`461ee610
class tpool::task * task = 0x00007ffc`610526d0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ntdll!RtlNtStatusToDosErrorNoTeb
Unable to enumerate locals, Win32 error 0n318
Private symbols (symbols.pri) are required for locals.
Type ".hh dbgerr005" for details.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ntdll!RtlReleaseSRWLockExclusive
Unable to enumerate locals, Win32 error 0n318
Private symbols (symbols.pri) are required for locals.
Type ".hh dbgerr005" for details.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
kernel32!BaseThreadInitThunk
Unable to enumerate locals, Win32 error 0n87
Private symbols (symbols.pri) are required for locals.
Type ".hh dbgerr005" for details.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ntdll!RtlUserThreadStart
Unable to enumerate locals, Win32 error 0n318
Private symbols (symbols.pri) are required for locals.
Type ".hh dbgerr005" for details.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
server!dict_col_get_no [D:\winx64-debug\build\src\storage\innobase\include\dict0dict.ic @ 151]
Processing 16 threads, please wait
 
.  0  Id: 14c8.1e0c Suspend: 0 Teb: 000000f7`0b868000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!ZwWaitForMultipleObjects
KERNELBASE!WaitForMultipleObjectsEx
KERNELBASE!WaitForMultipleObjects
server!handle_connections_win(void) [D:\winx64-debug\build\src\sql\handle_connections_win.cc @ 537]
server!win_main(int argc = 0n163, char ** argv = 0x000002ad`4256a380) [D:\winx64-debug\build\src\sql\mysqld.cc @ 5673]
server!mysql_service(void * p = 0x00000000`00000000) [D:\winx64-debug\build\src\sql\mysqld.cc @ 5740]
server!mysqld_main(int argc = 0n23, char ** argv = 0x000002ad`425570c0) [D:\winx64-debug\build\src\sql\mysqld.cc @ 5958]
mariadbd!main(int argc = 0n23, char ** argv = 0x000002ad`425570c0) [D:\winx64-debug\build\src\sql\main.cc @ 26]
(Inline Function) --------`-------- mariadbd!invoke_main [d:\agent\_work\4\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 78]
mariadbd!__scrt_common_main_seh(void) [d:\agent\_work\4\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
.  1  Id: 14c8.1b64 Suspend: 0 Teb: 000000f7`0b86a000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForWorkViaWorkerFactory
ntdll!RtlReleaseSRWLockExclusive
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
.  3  Id: 14c8.fec Suspend: 0 Teb: 000000f7`0b86e000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!ZwWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
server!pthread_cond_timedwait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ffc`606592b0, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ffc`60659280, struct timespec * abstime = 0x000000f7`0bdffc48) [D:\winx64-debug\build\src\mysys\my_wincond.c @ 82]
server!inline_mysql_cond_timedwait(struct st_mysql_cond * that = 0x00007ffc`606592b0, struct st_mysql_mutex * mutex = 0x00007ffc`60659280, struct timespec * abstime = 0x000000f7`0bdffc48, char * src_file = 0x00007ffc`603127a8 "--- memory read error at address 0x00007ffc`603127a8 ---", unsigned int src_line = 0x141) [D:\winx64-debug\build\src\include\mysql\psi\mysql_thread.h @ 1257]
server!timer_handler(void * arg = 0x00000000`00000000) [D:\winx64-debug\build\src\mysys\thr_timer.c @ 322]
server!pfs_spawn_thread(void * arg = 0x000002ad`435e7ff8) [D:\winx64-debug\build\src\storage\perfschema\pfs.cc @ 2203]
server!pthread_start(void * p = 0x000002ad`42554b40) [D:\winx64-debug\build\src\mysys\my_winthread.c @ 61]
ucrtbase!thread_start<unsigned int 
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
.  4  Id: 14c8.bfc Suspend: 0 Teb: 000000f7`0b870000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!ZwWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
server!pthread_cond_timedwait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ffc`60ff9f20, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ffc`60ff9ef0, struct timespec * abstime = 0x000000f7`0beff728) [D:\winx64-debug\build\src\mysys\my_wincond.c @ 82]
server!inline_mysql_cond_timedwait(struct st_mysql_cond * that = 0x00007ffc`60ff9f20, struct st_mysql_mutex * mutex = 0x00007ffc`60ff9ef0, struct timespec * abstime = 0x000000f7`0beff728, char * src_file = 0x00007ffc`605b26a0 "--- memory read error at address 0x00007ffc`605b26a0 ---", unsigned int src_line = 0x74) [D:\winx64-debug\build\src\include\mysql\psi\mysql_thread.h @ 1257]
server!my_service_thread_sleep(struct st_ma_service_thread_control * control = 0x00007ffc`6056feb8, unsigned int64 sleep_time = 0x00000006`c088e200) [D:\winx64-debug\build\src\storage\maria\ma_servicethread.c @ 119]
server!ma_checkpoint_background(void * arg = 0x00000000`0000001e) [D:\winx64-debug\build\src\storage\maria\ma_checkpoint.c @ 707]
server!pfs_spawn_thread(void * arg = 0x000002ad`46180728) [D:\winx64-debug\build\src\storage\perfschema\pfs.cc @ 2203]
server!pthread_start(void * p = 0x000002ad`42554d00) [D:\winx64-debug\build\src\mysys\my_winthread.c @ 61]
ucrtbase!thread_start<unsigned int 
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
.  6  Id: 14c8.1e88 Suspend: 0 Teb: 000000f7`0b874000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!ZwWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
server!os_event::timed_wait(unsigned long time_in_ms = 0x2ef) [D:\winx64-debug\build\src\storage\innobase\os\os0event.cc @ 251]
server!os_event::wait_time_low(unsigned int64 time_in_usec = 0xb7598, int64 reset_sig_count = 0n2) [D:\winx64-debug\build\src\storage\innobase\os\os0event.cc @ 387]
server!os_event_wait_time_low(struct os_event * event = 0x000002ad`461eee38, unsigned int64 time_in_usec = 0xb7598, int64 reset_sig_count = 0n2) [D:\winx64-debug\build\src\storage\innobase\os\os0event.cc @ 486]
server!pc_sleep_if_needed(unsigned int64 next_loop_time = 0x69c00843, int64 sig_count = 0n2, unsigned int64 cur_time = 0x69c00554) [D:\winx64-debug\build\src\storage\innobase\buf\buf0flu.cc @ 2308]
server!buf_flush_page_cleaner(void * __formal = 0x00000000`00000000) [D:\winx64-debug\build\src\storage\innobase\buf\buf0flu.cc @ 2590]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
.  7  Id: 14c8.16f4 Suspend: 0 Teb: 000000f7`0b878000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!ZwWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableSRW
KERNELBASE!SleepConditionVariableSRW
server!__crtSleepConditionVariableSRW(struct _RTL_CONDITION_VARIABLE * pCond = <Value unavailable error>, struct _RTL_SRWLOCK * pLock = <Value unavailable error>, unsigned long dwMs = <Value unavailable error>, unsigned long flags = <Value unavailable error>) [d:\agent\_work\4\s\src\vctools\crt\github\stl\src\winapisupp.cpp @ 482]
(Inline Function) --------`-------- server!Concurrency::details::stl_condition_variable_win7::wait_for [d:\agent\_work\4\s\src\vctools\crt\github\stl\src\primitives.h @ 179]
server!Concurrency::details::stl_condition_variable_win7::wait(class Concurrency::details::stl_critical_section_interface * lock = <Value unavailable error>) [d:\agent\_work\4\s\src\vctools\crt\github\stl\src\primitives.h @ 173]
server!do_wait(struct _Cnd_internal_imp_t * cond = 0x00007ffc`61052740, struct _Mtx_internal_imp_t * mtx = 0x00007ffc`610526f0, struct xtime * target = 0x00000000`00000000) [d:\agent\_work\4\s\src\vctools\crt\github\stl\src\cond.cpp @ 62]
server!std::condition_variable::wait(class std::unique_lock<std::mutex> * _Lck = 0x000000f7`0c2ff158) [C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include\mutex @ 598]
server!tpool::waitable_task::wait(class std::unique_lock<std::mutex> * lk = 0x000000f7`0c2ff158) [D:\winx64-debug\build\src\tpool\task.cc @ 79]
server!tpool::waitable_task::wait(void) [D:\winx64-debug\build\src\tpool\task.cc @ 85]
server!trx_purge_wait_for_workers_to_complete(void) [D:\winx64-debug\build\src\storage\innobase\trx\trx0purge.cc @ 1258]
server!trx_purge(unsigned int64 n_tasks = 4, bool truncate = false) [D:\winx64-debug\build\src\storage\innobase\trx\trx0purge.cc @ 1305]
server!srv_do_purge(unsigned int64 * n_total_purged = 0x000000f7`0c2ff2d8) [D:\winx64-debug\build\src\storage\innobase\srv\srv0srv.cc @ 2122]
server!purge_coordinator_callback_low(void) [D:\winx64-debug\build\src\storage\innobase\srv\srv0srv.cc @ 2212]
server!purge_coordinator_callback(void * __formal = 0x00000000`00000000) [D:\winx64-debug\build\src\storage\innobase\srv\srv0srv.cc @ 2242]
server!tpool::task_group::execute(class tpool::task * t = 0x00007ffc`610527a0) [D:\winx64-debug\build\src\tpool\task_group.cc @ 56]
server!tpool::task::execute(void) [D:\winx64-debug\build\src\tpool\task.cc @ 48]
server!tpool::thread_pool_win::task_callback(struct _TP_CALLBACK_INSTANCE * __formal = 0x000000f7`0c2ff5d8, void * param = 0x000002ad`461ee610) [D:\winx64-debug\build\src\tpool\tpool_win.cc @ 264]
ntdll!RtlNtStatusToDosErrorNoTeb
ntdll!RtlReleaseSRWLockExclusive
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 11  Id: 14c8.83c Suspend: 0 Teb: 000000f7`0b882000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!ZwWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
server!pthread_cond_timedwait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ffc`60609c68, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ffc`60609a90, struct timespec * abstime = 0x00000000`00000000) [D:\winx64-debug\build\src\mysys\my_wincond.c @ 82]
server!pthread_cond_wait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ffc`60609c68, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ffc`60609a90) [D:\winx64-debug\build\src\mysys\my_wincond.c @ 91]
server!inline_mysql_cond_wait(struct st_mysql_cond * that = 0x00007ffc`60609c68, struct st_mysql_mutex * mutex = 0x00007ffc`60609a90, char * src_file = 0x00007ffc`5e949cf0 "D:\winx64-debug\build\src\sql\slave.cc", unsigned int src_line = 0x20d) [D:\winx64-debug\build\src\include\mysql\psi\mysql_thread.h @ 1220]
server!handle_slave_background(void * arg = 0x00000000`00000000) [D:\winx64-debug\build\src\sql\slave.cc @ 526]
server!pfs_spawn_thread(void * arg = 0x000002ad`4924ba78) [D:\winx64-debug\build\src\storage\perfschema\pfs.cc @ 2203]
server!pthread_start(void * p = 0x000002ad`4630ad50) [D:\winx64-debug\build\src\mysys\my_winthread.c @ 61]
ucrtbase!thread_start<unsigned int 
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 12  Id: 14c8.143c Suspend: 0 Teb: 000000f7`0b884000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!ZwWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
server!pthread_cond_timedwait(struct _RTL_CONDITION_VARIABLE * cond = 0x000002ad`4932f638, struct _RTL_CRITICAL_SECTION * mutex = 0x000002ad`4932f608, struct timespec * abstime = 0x000000f7`0b7ecd68) [D:\winx64-debug\build\src\mysys\my_wincond.c @ 82]
server!inline_mysql_cond_timedwait(struct st_mysql_cond * that = 0x000002ad`4932f638, struct st_mysql_mutex * mutex = 0x000002ad`4932f608, struct timespec * abstime = 0x000000f7`0b7ecd68, char * src_file = 0x00007ffc`5eafdbc8 "D:\winx64-debug\build\src\sql\mdl.cc", unsigned int src_line = 0x48f) [D:\winx64-debug\build\src\include\mysql\psi\mysql_thread.h @ 1257]
server!MDL_wait::timed_wait(class MDL_context_owner * owner = 0x000002ad`4932f598, struct timespec * abs_timeout = 0x000000f7`0b7ecd68, bool set_status_on_timeout = false, struct PSI_stage_info_v1 * wait_state_name = 0x00007ffc`602f0c30) [D:\winx64-debug\build\src\sql\mdl.cc @ 1166]
server!MDL_context::acquire_lock(class MDL_request * mdl_request = 0x000002ad`49339910, double lock_wait_timeout = 86400) [D:\winx64-debug\build\src\sql\mdl.cc @ 2332]
server!MDL_context::acquire_locks(class I_P_List<MDL_request,I_P_List_adapter<MDL_request,8,16>,I_P_List_counter,I_P_List_no_push_back<MDL_request> > * mdl_requests = 0x000000f7`0b7ecf18, double lock_wait_timeout = 86400) [D:\winx64-debug\build\src\sql\mdl.cc @ 2459]
server!lock_table_names(class THD * thd = 0x000002ad`4932f4e8, struct DDL_options_st * options = 0x000002ad`49333d80, struct TABLE_LIST * tables_start = 0x000002ad`493394c8, struct TABLE_LIST * tables_end = 0x00000000`00000000, unsigned long lock_wait_timeout = 0x15180, unsigned int flags = 0) [D:\winx64-debug\build\src\sql\sql_base.cc @ 4022]
server!lock_table_names(class THD * thd = 0x000002ad`4932f4e8, struct TABLE_LIST * table_list = 0x000002ad`493394c8, struct TABLE_LIST * table_list_end = 0x00000000`00000000, unsigned long lock_wait_timeout = 0x15180, unsigned int flags = 0) [D:\winx64-debug\build\src\sql\sql_base.h @ 254]
server!mysql_rm_table(class THD * thd = 0x000002ad`4932f4e8, struct TABLE_LIST * tables = 0x000002ad`493394c8, bool if_exists = false, bool drop_temporary = false, bool drop_sequence = false, bool dont_log_query = false) [D:\winx64-debug\build\src\sql\sql_table.cc @ 2088]
server!mysql_execute_command(class THD * thd = 0x000002ad`4932f4e8) [D:\winx64-debug\build\src\sql\sql_parse.cc @ 4921]
server!mysql_parse(class THD * thd = 0x000002ad`4932f4e8, char * rawbuf = 0x000002ad`49339410 "--- memory read error at address 0x000002ad`49339410 ---", unsigned int length = 0xc, class Parser_state * parser_state = 0x000000f7`0b7eea30, bool is_com_multi = false, bool is_next_command = false) [D:\winx64-debug\build\src\sql\sql_parse.cc @ 7993]
server!dispatch_command(enum_server_command command = COM_QUERY (0n3), class THD * thd = 0x000002ad`4932f4e8, char * packet = 0x000002ad`492a9719 "--- memory read error at address 0x000002ad`492a9719 ---", unsigned int packet_length = 0xc, bool is_com_multi = false, bool is_next_command = false) [D:\winx64-debug\build\src\sql\sql_parse.cc @ 1869]
server!do_command(class THD * thd = 0x000002ad`4932f4e8) [D:\winx64-debug\build\src\sql\sql_parse.cc @ 1347]
server!threadpool_process_request(class THD * thd = 0x000002ad`4932f4e8) [D:\winx64-debug\build\src\sql\threadpool_common.cc @ 354]
server!tp_callback(struct TP_connection * c = 0x000002ad`4932ee60) [D:\winx64-debug\build\src\sql\threadpool_common.cc @ 194]
server!tp_callback(struct _TP_CALLBACK_INSTANCE * instance = 0x000000f7`0b7ef9d8, void * context = 0x000002ad`4932ee60) [D:\winx64-debug\build\src\sql\threadpool_win.cc @ 343]
server!work_callback(struct _TP_CALLBACK_INSTANCE * instance = 0x000000f7`0b7ef9d8, void * context = 0x000002ad`4932ee60, struct _TP_WORK * work = 0x000002ad`4930ffe0) [D:\winx64-debug\build\src\sql\threadpool_win.cc @ 394]
ntdll!RtlInitializeCriticalSection
ntdll!RtlReleaseSRWLockExclusive
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 14  Id: 14c8.18bc Suspend: 0 Teb: 000000f7`0b888000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtGetContextThread
0xffffffff`00000000
 
Total threads: 16
Duplicate callstacks: 7 (windbg thread #s follow):
2, 5, 8, 9, 10, 13, 15
quit:
 


Generated at Thu Feb 08 09:19:56 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.