[MDEV-11196] Error:Run-Time Check Failure #2 - Stack around the variable 'key_buff' was corrupted, server crashes in opt_sum_query Created: 2016-10-31  Updated: 2018-12-19  Resolved: 2017-05-29

Status: Closed
Project: MariaDB Server
Component/s: Optimizer
Affects Version/s: 10.2
Fix Version/s: 10.1.24

Type: Bug Priority: Critical
Reporter: Elena Stepanova Assignee: Varun Gupta (Inactive)
Resolution: Fixed Votes: 0
Labels: 10.2-ga
Environment:

Windows


Sprint: 10.1.24

 Description   

Test case

--source include/have_innodb.inc
 
CREATE TABLE t (
  pk INT, 
  f1 VARCHAR(3), 
  f2 VARCHAR(1024), 
  PRIMARY KEY (pk), 
  KEY(f2)
) ENGINE=InnoDB CHARSET utf8;
 
INSERT INTO t VALUES (1,'foo','abc'),(2,'bar','def');
SELECT MAX(t1.pk) FROM t t1 INNER JOIN t t2 ON t1.f1 = t2.f1 WHERE t1.pk <= 4;

10.2 92f18bded

>	mysqld.exe!handle_rtc_failure(int err_type, const char * file, int line, const char * module, const char * format, ...) Line 284	C
 	[External Code]	
 	mysqld.exe!opt_sum_query(THD * thd, List<TABLE_LIST> & tables, List<Item> & all_fields, Item * conds) Line 482	C++
 	mysqld.exe!JOIN::optimize_inner() Line 1429	C++
 	mysqld.exe!JOIN::optimize() Line 1084	C++
 	mysqld.exe!mysql_select(THD * thd, TABLE_LIST * tables, unsigned int wild_num, List<Item> & fields, Item * conds, unsigned int og_num, st_order * order, st_order * group, Item * having, st_order * proc_param, unsigned __int64 select_options, select_result * result, st_select_lex_unit * unit, st_select_lex * select_lex) Line 3644	C++
 	mysqld.exe!handle_select(THD * thd, LEX * lex, select_result * result, unsigned long setup_tables_done_option) Line 361	C++
 	mysqld.exe!execute_sqlcom_select(THD * thd, TABLE_LIST * all_tables) Line 6415	C++
 	mysqld.exe!mysql_execute_command(THD * thd) Line 3448	C++
 	mysqld.exe!mysql_parse(THD * thd, char * rawbuf, unsigned int length, Parser_state * parser_state, bool is_com_multi, bool is_next_command) Line 7858	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 1814	C++
 	mysqld.exe!do_command(THD * thd) Line 1361	C++
 	mysqld.exe!threadpool_process_request(THD * thd) Line 346	C++
 	mysqld.exe!tp_callback(TP_connection * c) Line 192	C++
 	mysqld.exe!tp_callback(_TP_CALLBACK_INSTANCE * instance, void * context) Line 378	C++
 	mysqld.exe!work_callback(_TP_CALLBACK_INSTANCE * instance, void * context, _TP_WORK * work) Line 452	C++
 	[External Code]	

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.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
 
 
Loading Dump File [E:\elenst\10.2\mysql-test\var\log\main.t1-innodb\mysqld.1\data\mysqld.dmp]
User Mini Dump File: Only registers, stack and portions of memory are available
 
 
Response                         Time (ms)     Location
OK                                             C:\Windows\apppatch\AppPatch64
OK                                             C:\Windows\System32
OK                                             C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
OK                                             E:\elenst\10.2\sql\Debug
OK                                             .
 
Response                         Time (ms)     Location
OK                                             C:\Windows\apppatch\AppPatch64
OK                                             C:\Windows\System32
OK                                             C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
OK                                             E:\elenst\10.2\sql\Debug
OK                                             .
Deferred                                       srv*C:\cdb_symbols*http://msdl.microsoft.com/download/symbols
Symbol search path is: C:\Windows\apppatch\AppPatch64;C:\Windows\System32;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64;E:\elenst\10.2\sql\Debug;.;srv*C:\cdb_symbols*http://msdl.microsoft.com/download/symbols
Executable search path is: C:\Windows\apppatch\AppPatch64;C:\Windows\System32;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64;E:\elenst\10.2\sql\Debug;.
Windows 8.1 Version 9600 MP (4 procs) Free x64
Product: Server, suite: TerminalServer DataCenter SingleUserTS
Built by: 6.3.9600.17031 (winblue_gdr.140221-1952)
Machine Name:
Debug session time: Thu Mar 23 14:26:23.000 2017 (UTC + 0:00)
System Uptime: not available
Process Uptime: 0 days 0:00:08.000
....................................................
This dump file has a breakpoint exception stored in it.
The stored exception information can be accessed via .ecxr.
ntdll!NtGetContextThread:
             ret
0:024> 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=00000073ae83a270 rcx=00000000ffffffff
rdx=00007ff79de25740 rsi=00007ff79d911038 rdi=00000073ae839f60
rip=00007ff79c1fe484 rsp=00000073ae839ab0 rbp=0000000000000002
 r8=00000073ae8382f8  r9=0000000000000002 r10=0000000000000000
r11=0000000000000246 r12=0000000000000001 r13=0000000000000000
r14=00007ff79c1fe3f0 r15=00000073ae83aa00
iopl=0         nv up ei pl nz na pe nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
mysqld!handle_rtc_failure:
             int     3
Resetting default scope
 
FAULTING_IP: 
mysqld!handle_rtc_failure+94 [e:\elenst\10.2\mysys\my_init.c @ 284]
             int     3
 
EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 00007ff79c1fe484 (mysqld!handle_rtc_failure)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 0000000000000000
 
DEFAULT_BUCKET_ID:  STATUS_BREAKPOINT
 
PROCESS_NAME:  mysqld.exe
 
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.
 
EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid
 
EXCEPTION_CODE_STR:  80000003
 
EXCEPTION_PARAMETER1:  0000000000000000
 
WATSON_BKT_PROCSTAMP:  58d300e2
 
WATSON_BKT_PROCVER:  10.2.5.0
 
WATSON_BKT_MODULE:  mysqld.exe
 
WATSON_BKT_MODSTAMP:  58d300e2
 
WATSON_BKT_MODOFFSET:  d1e484
 
WATSON_BKT_MODVER:  10.2.5.0
 
BUILD_VERSION_STRING:  6.3.9600.17415 (winblue_r4.141028-1500)
 
MODLIST_WITH_TSCHKSUM_HASH:  4650ac00956dd4e15833ce493be3c2dbe8d54100
 
MODLIST_SHA1_HASH:  e704c60c01ad350414df387156d9ca046d10a80c
 
DUMP_FLAGS:  0
 
DUMP_TYPE:  2
 
ANALYSIS_SESSION_HOST:  MARIADB-04
 
ANALYSIS_SESSION_TIME:  03-23-2017 14:26:27.0107
 
ANALYSIS_VERSION: 10.0.14321.1024 amd64fre
 
THREAD_ATTRIBUTES: 
PROBLEM_CLASSES: 
 
 
 
 
    Tid    [0x0]
    Frame  [0x00]
    String [STATUS_BREAKPOINT]
    Data Bucketing
 
 
BUGCHECK_STR:  STATUS_BREAKPOINT
 
LAST_CONTROL_TRANSFER:  from 00007ff79c37a70b to 00007ff79c1fe484
 
STACK_TEXT:  
mysqld!handle_rtc_failure
mysqld!failwithmessage
mysqld!_RTC_StackFailure
mysqld!_RTC_CheckStackVars
mysqld!opt_sum_query
mysqld!JOIN::optimize_inner
mysqld!JOIN::optimize
mysqld!mysql_select
mysqld!handle_select
mysqld!execute_sqlcom_select
mysqld!mysql_execute_command
mysqld!mysql_parse
mysqld!dispatch_command
mysqld!do_command
mysqld!threadpool_process_request
mysqld!tp_callback
mysqld!tp_callback
mysqld!work_callback
ntdll!TppWorkpExecuteCallback
ntdll!TppWorkerThread
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
 
THREAD_SHA1_HASH_MOD_FUNC:  ebe44e95c2cc3450e31aac551b553f68da5d6b6e
 
THREAD_SHA1_HASH_MOD_FUNC_OFFSET:  9f9b5655fcaf8d2d5d938997451537afda76b76b
 
THREAD_SHA1_HASH_MOD:  bd6a785a2bcd80eb206fd98087c57c956fe18623
 
FOLLOWUP_IP: 
mysqld!handle_rtc_failure+94 [e:\elenst\10.2\mysys\my_init.c @ 284]
             int     3
 
FAULT_INSTR_CODE:  48c033cc
 
FAULTING_SOURCE_LINE:  e:\elenst\10.2\mysys\my_init.c
 
FAULTING_SOURCE_FILE:  e:\elenst\10.2\mysys\my_init.c
 
FAULTING_SOURCE_LINE_NUMBER:  284
 
FAULTING_SOURCE_CODE:  
   280:   vfprintf(stderr, format, args);
   281:   fprintf(stderr, " At %s:%d\n", file, line);
   282:   va_end(args);
   283:   (void) fflush(stderr);
>  284:   __debugbreak();
   285: 
   286:   return 0; /* Error is handled */
   287: }
   288: #pragma runtime_checks("", restore)
   289: #endif
 
 
SYMBOL_STACK_INDEX:  0
 
SYMBOL_NAME:  mysqld!handle_rtc_failure+94
 
FOLLOWUP_NAME:  MachineOwner
 
MODULE_NAME: mysqld
 
IMAGE_NAME:  mysqld.exe
 
DEBUG_FLR_IMAGE_TIMESTAMP:  58d300e2
 
STACK_COMMAND:  .ecxr ; kb
 
BUCKET_ID:  STATUS_BREAKPOINT_mysqld!handle_rtc_failure+94
 
PRIMARY_PROBLEM_CLASS:  STATUS_BREAKPOINT_mysqld!handle_rtc_failure+94
 
FAILURE_EXCEPTION_CODE:  80000003
 
FAILURE_IMAGE_NAME:  mysqld.exe
 
BUCKET_ID_IMAGE_STR:  mysqld.exe
 
FAILURE_MODULE_NAME:  mysqld
 
BUCKET_ID_MODULE_STR:  mysqld
 
FAILURE_FUNCTION_NAME:  handle_rtc_failure
 
BUCKET_ID_FUNCTION_STR:  handle_rtc_failure
 
BUCKET_ID_OFFSET:  94
 
BUCKET_ID_MODTIMEDATESTAMP:  58d300e2
 
BUCKET_ID_MODCHECKSUM:  0
 
BUCKET_ID_MODVER_STR:  10.2.5.0
 
BUCKET_ID_PREFIX_STR:  STATUS_BREAKPOINT_
 
FAILURE_PROBLEM_CLASS:  STATUS_BREAKPOINT
 
FAILURE_SYMBOL_NAME:  mysqld.exe!handle_rtc_failure
 
FAILURE_BUCKET_ID:  STATUS_BREAKPOINT_80000003_mysqld.exe!handle_rtc_failure
 
WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/mysqld.exe/10.2.5.0/58d300e2/mysqld.exe/10.2.5.0/58d300e2/80000003/00d1e484.htm?Retriage=1
 
TARGET_TIME:  2017-03-23T14:26:23.000Z
 
OSBUILD:  9600
 
OSSERVICEPACK:  17415
 
SERVICEPACK_NUMBER: 0
 
OS_REVISION: 0
 
SUITE_MASK:  400
 
PRODUCT_TYPE:  3
 
OSPLATFORM_TYPE:  x64
 
OSNAME:  Windows 8.1
 
OSEDITION:  Windows 8.1 Server TerminalServer DataCenter SingleUserTS
 
OS_LOCALE:  
 
USER_LCID:  0
 
OSBUILD_TIMESTAMP:  2014-10-29 02:45:30
 
BUILDDATESTAMP_STR:  141028-1500
 
BUILDLAB_STR:  winblue_r4
 
BUILDOSVER_STR:  6.3.9600.17415
 
ANALYSIS_SESSION_ELAPSED_TIME: 8d9
 
ANALYSIS_SOURCE:  UM
 
FAILURE_ID_HASH_STRING:  um:status_breakpoint_80000003_mysqld.exe!handle_rtc_failure
 
FAILURE_ID_HASH:  {2831681c-542c-7edc-d88e-5c36b63cf6d3}
 
Followup:     MachineOwner
---------
 
rax=0000000000000000 rbx=00000073ae83a270 rcx=00000000ffffffff
rdx=00007ff79de25740 rsi=00007ff79d911038 rdi=00000073ae839f60
rip=00007ff79c1fe484 rsp=00000073ae839ab0 rbp=0000000000000002
 r8=00000073ae8382f8  r9=0000000000000002 r10=0000000000000000
r11=0000000000000246 r12=0000000000000001 r13=0000000000000000
r14=00007ff79c1fe3f0 r15=00000073ae83aa00
iopl=0         nv up ei pl nz na pe nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
mysqld!handle_rtc_failure:
             int     3
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!handle_rtc_failure [e:\elenst\10.2\mysys\my_init.c @ 284]
int err_type = 0n1
char * file = 0x00000073`ae839f60 "e:\elenst\10.2\sql\opt_sum.cc"
int line = 0n482
char * module = 0x00000073`ae83a270 "E:\elenst\10.2\sql\Debug\mysqld.exe"
char * format = 0x00007ff7`9d911050 "Run-Time Check Failure #%d - %s"
char * args = 0x00000000`00000000 ""
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!failwithmessage
void * retaddr = 0x00000073`ae839f60
int crttype = 0n1
int errnum = 0n2
char * msg = 0x00000073`ae83aa00 "Stack around the variable 'key_buff' was corrupted."
wchar_t * msgW = 0x00007ff7`9d911038 "??????"
int bufsize = <value unavailable>
bool dobreak = <value unavailable>
wchar_t [512] msgB = wchar_t [512] "Stack around the variable 'key_buff' was corrupted."
<function> * fnW = 0x00000073`ae83a270
<function> * fn = 0x00007ff7`9c1fe3f0
int lineNum = 0n482
wchar_t [260] moduleNameW = wchar_t [260] "E:\elenst\10.2\sql\Debug\mysqld.exe"
wchar_t [260] srcNameW = wchar_t [260] "e:\elenst\10.2\sql\opt_sum.cc"
char * moduleName = 0x00000073`ae83a270 "E:\elenst\10.2\sql\Debug\mysqld.exe"
char * srcName = 0x00000073`ae839f60 "e:\elenst\10.2\sql\opt_sum.cc"
char [778] srcNameB = char [778] "e:\elenst\10.2\sql\opt_sum.cc"
char [778] moduleNameB = char [778] "E:\elenst\10.2\sql\Debug\mysqld.exe"
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!_RTC_StackFailure
void * retaddr = 0x00007ff7`9badcdbf
char * varname = 0x00007ff7`9c7f3030 "key_buff"
int crttype = 0n1
char [1024] msgB = char [1024] "Stack around the variable 'key_buff' was corrupted."
char * msg = <value unavailable>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!_RTC_CheckStackVars
void * frame = 0x00000073`ae83ae50
struct _RTC_framedesc * v = 0x00007ff7`9c7f3220
int i = 0n3
int * head = 0x00000000`00000000
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!opt_sum_query [e:\elenst\10.2\sql\opt_sum.cc @ 482]
class THD * thd = 0x00000073`a9ecd6e8
class List<TABLE_LIST> * tables = 0x00000073`a9ed1078
class List<Item> * all_fields = 0x00000073`ad661158
class Item * conds = 0x00000073`ad661720
class List_iterator_fast<Item> it = class List_iterator_fast<Item>
struct TABLE_LIST * tl = 0x00000000`00000000
unsigned int64 outer_tables = 0
unsigned int64 where_tables = 3
class Item * item = 0x00000000`00000000
unsigned int64 count = 1
struct _db_stack_frame_ _db_stack_frame_ = struct _db_stack_frame_
bool recalc_const_item = false
bool maybe_exact_count = false
bool is_exact_count = false
class List_iterator<TABLE_LIST> ti = class List_iterator<TABLE_LIST>
unsigned int64 removed_tables = 0
int error = 0n0
int const_result = 0n0
unsigned int64 used_tables = 3
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!JOIN::optimize_inner [e:\elenst\10.2\sql\sql_select.cc @ 1429]
int res = 0n-858993460
class JOIN * this = 0x00000073`ad660e48
class st_select_lex * sel = 0x00000073`a9ed0ea8
unsigned int64 select_opts_for_readinfo = 0xcccccccc`cccccccc
struct _db_stack_frame_ _db_stack_frame_ = struct _db_stack_frame_
int res = 0n-858993460
struct st_join_table * tab = 0xcccccccc`cccccccc
unsigned int no_jbuf_after = 0xcccccccc
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!JOIN::optimize [e:\elenst\10.2\sql\sql_select.cc @ 1084]
class JOIN * this = 0x00000073`ad660e48
int res = 0n-858993460
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!mysql_select [e:\elenst\10.2\sql\sql_select.cc @ 3644]
class THD * thd = 0x00000073`a9ecd6e8
struct TABLE_LIST * tables = 0x00000073`ad65f370
unsigned int wild_num = 0
class List<Item> * fields = 0x00000073`a9ed0fd0
class Item * conds = 0x00000073`ad660bf0
unsigned int og_num = 0
struct st_order * order = 0x00000000`00000000
struct st_order * group = 0x00000000`00000000
class Item * having = 0x00000000`00000000
struct st_order * proc_param = 0x00000000`00000000
unsigned int64 select_options = 0x80040b00
class select_result * result = 0x00000073`ad660e28
class st_select_lex_unit * unit = 0x00000073`a9ed0790
class st_select_lex * select_lex = 0x00000073`a9ed0ea8
int err = 0n0
struct _db_stack_frame_ _db_stack_frame_ = struct _db_stack_frame_
bool free_join = true
class JOIN * join = 0x00000073`ad660e48
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!handle_select [e:\elenst\10.2\sql\sql_select.cc @ 361]
class st_select_lex_unit * unit = 0x00000073`a9ed0790
class THD * thd = 0x00000073`a9ecd6e8
struct LEX * lex = 0x00000073`a9ed06d0
class select_result * result = 0x00000073`ad660e28
unsigned long setup_tables_done_option = 0
bool res = true
struct _db_stack_frame_ _db_stack_frame_ = struct _db_stack_frame_
class st_select_lex * select_lex = 0x00000073`a9ed0ea8
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!execute_sqlcom_select [e:\elenst\10.2\sql\sql_parse.cc @ 6415]
class Protocol * save_protocol = 0x00000000`00000000
class THD * thd = 0x00000073`a9ecd6e8
struct TABLE_LIST * all_tables = 0x00000073`ad65f370
bool res = false
struct LEX * lex = 0x00000073`a9ed06d0
class select_result * result = 0x00000073`ad660e28
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!mysql_execute_command [e:\elenst\10.2\sql\sql_parse.cc @ 3448]
unsigned long privileges_requested = 1
class THD * thd = 0x00000073`a9ecd6e8
struct TABLE_LIST * all_tables = 0x00000073`ad65f370
class st_select_lex_unit * unit = 0x00000073`a9ed0790
bool have_table_map_for_update = false
enum_binlog_format orig_current_stmt_binlog_format = BINLOG_FORMAT_STMT (0n1)
int up_result = 0n0
int res = 0n0
struct _db_stack_frame_ _db_stack_frame_ = struct _db_stack_frame_
enum_binlog_format orig_binlog_format = BINLOG_FORMAT_MIXED (0n0)
class Rpl_filter * rpl_filter = 0xcccccccc`cccccccc
struct LEX * lex = 0x00000073`a9ed06d0
class st_select_lex * select_lex = 0x00000073`a9ed0ea8
struct TABLE_LIST * first_table = 0x00000073`ad65f370
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!mysql_parse [e:\elenst\10.2\sql\sql_parse.cc @ 7858]
char * found_semicolon = 0x00000000`00000000 ""
bool err = false
struct LEX * lex = 0x00000073`a9ed06d0
class THD * thd = 0x00000073`a9ecd6e8
char * rawbuf = 0x00000073`ad65ef90 "--- memory read error at address 0x00000073`ad65ef90 ---"
unsigned int length = 0x4d
class Parser_state * parser_state = 0x00000073`ae83e780
bool is_com_multi = false
bool is_next_command = false
struct _db_stack_frame_ _db_stack_frame_ = struct _db_stack_frame_
int error = 0n-858993460
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!dispatch_command [e:\elenst\10.2\sql\sql_parse.cc @ 1814]
char * packet_end = 0x00000073`ad65efdd "--- memory read error at address 0x00000073`ad65efdd ---"
class Parser_state parser_state = class Parser_state
enum_server_command command = COM_QUERY (0n3)
class THD * thd = 0x00000073`a9ecd6e8
char * packet = 0x00000073`ad7b97d9 "--- memory read error at address 0x00000073`ad7b97d9 ---"
unsigned int packet_length = 0x4d
bool is_com_multi = false
bool is_next_command = false
bool drop_more_results = false
bool do_end_of_statement = true
struct _db_stack_frame_ _db_stack_frame_ = struct _db_stack_frame_
bool error = false
struct st_net * net = 0x00000073`a9ecd8e8
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!do_command [e:\elenst\10.2\sql\sql_parse.cc @ 1361]
class THD * thd = 0x00000073`a9ecd6e8
bool return_value = true
unsigned long packet_length = 0x4e
struct _db_stack_frame_ _db_stack_frame_ = struct _db_stack_frame_
enum_server_command command = COM_QUERY (0n3)
char * packet = 0x00000073`ad7b97d8 "--- memory read error at address 0x00000073`ad7b97d8 ---"
struct st_net * net = 0x00000073`a9ecd8e8
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!threadpool_process_request [e:\elenst\10.2\sql\threadpool_common.cc @ 346]
struct st_vio * vio = 0xcccccccc`cccccccc
class THD * thd = 0x00000073`a9ecd6e8
int retval = 0n0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!tp_callback [e:\elenst\10.2\sql\threadpool_common.cc @ 192]
struct TP_connection * c = 0x00000073`a9e09050
struct Worker_thread_context worker_context = struct Worker_thread_context
class THD * thd = 0x00000073`a9ecd6e8
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!tp_callback [e:\elenst\10.2\sql\threadpool_win.cc @ 378]
struct _TP_CALLBACK_INSTANCE * instance = 0x00000073`ae83f628
void * context = 0x00000073`a9e09050
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!work_callback [e:\elenst\10.2\sql\threadpool_win.cc @ 452]
struct _TP_CALLBACK_INSTANCE * instance = 0x00000073`ae83f628
void * context = 0x00000073`a9e09050
struct _TP_WORK * work = 0x00000073`a9cd1e20
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ntdll!TppWorkpExecuteCallback
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ntdll!TppWorkerThread
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
kernel32!BaseThreadInitThunk
Unable to enumerate locals, HRESULT 0x80004005
Private symbols (symbols.pri) are required for locals.
Type ".hh dbgerr005" for details.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ntdll!RtlUserThreadStart
Unable to enumerate locals, HRESULT 0x80004005
Private symbols (symbols.pri) are required for locals.
Type ".hh dbgerr005" for details.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
mysqld!handle_rtc_failure [e:\elenst\10.2\mysys\my_init.c @ 284]
Processing 29 threads, please wait
 
.  0  Id: dd4.cdc Suspend: 0 Teb: 00007ff7`9ae9d000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!pthread_cond_timedwait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ff7`9de3d5a8, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ff7`9de3b6c0, struct timespec * abstime = 0x00000000`00000000) [e:\elenst\10.2\mysys\my_wincond.c @ 82]
mysqld!pthread_cond_wait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ff7`9de3d5a8, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ff7`9de3b6c0) [e:\elenst\10.2\mysys\my_wincond.c @ 91]
mysqld!inline_mysql_cond_wait(struct st_mysql_cond * that = 0x00007ff7`9de3d5a8, struct st_mysql_mutex * mutex = 0x00007ff7`9de3b6c0, char * src_file = 0x00007ff7`9c512198 "E:\elenst\10.2\sql\mysqld.cc", unsigned int src_line = 0x15af) [e:\elenst\10.2\include\mysql\psi\mysql_thread.h @ 1138]
mysqld!handle_connections_methods(void) [e:\elenst\10.2\sql\mysqld.cc @ 5551]
mysqld!win_main(int argc = 0n144, char ** argv = 0x00000073`a3cfced8) [e:\elenst\10.2\sql\mysqld.cc @ 6041]
mysqld!mysql_service(void * p = 0x00000000`00000000) [e:\elenst\10.2\sql\mysqld.cc @ 6100]
mysqld!mysqld_main(int argc = 0n23, char ** argv = 0x00000073`a3ce9cb0) [e:\elenst\10.2\sql\mysqld.cc @ 6293]
mysqld!main(int argc = 0n23, char ** argv = 0x00000073`a3ce9cb0) [e:\elenst\10.2\sql\main.cc @ 26]
mysqld!invoke_main(void) [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 65]
mysqld!__scrt_common_main_seh(void) [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 253]
mysqld!__scrt_common_main(void) [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 296]
mysqld!mainCRTStartup(void) [f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp @ 17]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
.  1  Id: dd4.d58 Suspend: 0 Teb: 00007ff7`9ae9b000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!pthread_cond_timedwait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ff7`9e6bc458, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ff7`9e6bc428, struct timespec * abstime = 0x00000073`aa43fd68) [e:\elenst\10.2\mysys\my_wincond.c @ 82]
mysqld!inline_mysql_cond_timedwait(struct st_mysql_cond * that = 0x00007ff7`9e6bc458, struct st_mysql_mutex * mutex = 0x00007ff7`9e6bc428, struct timespec * abstime = 0x00000073`aa43fd68, char * src_file = 0x00007ff7`9dc50728 "--- memory read error at address 0x00007ff7`9dc50728 ---", unsigned int src_line = 0x124) [e:\elenst\10.2\include\mysql\psi\mysql_thread.h @ 1175]
mysqld!timer_handler(void * arg = 0x00000000`00000000) [e:\elenst\10.2\mysys\thr_timer.c @ 293]
mysqld!pfs_spawn_thread(void * arg = 0x00000073`a3d0c278) [e:\elenst\10.2\storage\perfschema\pfs.cc @ 1864]
mysqld!pthread_start(void * p = 0x00000073`a3cf5170) [e:\elenst\10.2\mysys\my_winthread.c @ 61]
mysqld!invoke_thread_procedure(<function> * procedure = 0x00007ff7`9c1f74c0, void * context = 0x00000073`a3cf5170) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 92]
mysqld!thread_start<unsigned int (void * parameter = 0x00000073`a3d051e0) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 115]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
.  2  Id: dd4.2cc Suspend: 0 Teb: 00007ff7`9ae99000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtRemoveIoCompletion
KERNELBASE!GetQueuedCompletionStatus
mysqld!os_aio_windows_handler(unsigned int64 segment = 0, unsigned int64 pos = 0, struct fil_node_t ** m1 = 0x00000073`ab5df788, void ** m2 = 0x00000073`ab5df7d8, class IORequest * type = 0x00000073`ab5df7a8) [e:\elenst\10.2\storage\innobase\os\os0file.cc @ 6495]
mysqld!os_aio_handler(unsigned int64 segment = 0, struct fil_node_t ** m1 = 0x00000073`ab5df788, void ** m2 = 0x00000073`ab5df7d8, class IORequest * request = 0x00000073`ab5df7a8) [e:\elenst\10.2\storage\innobase\os\os0file.cc @ 5688]
mysqld!fil_aio_wait(unsigned int64 segment = 0) [e:\elenst\10.2\storage\innobase\fil\fil0fil.cc @ 5350]
mysqld!io_handler_thread(void * arg = 0x00007ff7`9dea1a20) [e:\elenst\10.2\storage\innobase\srv\srv0start.cc @ 328]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
.  8  Id: dd4.90c Suspend: 0 Teb: 00007ff7`9ad6a000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::timed_wait(unsigned long time_in_ms = 0x3e8) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 262]
mysqld!os_event::wait_time_low(unsigned int64 time_in_usec = 0xf4240, int64 reset_sig_count = 0n2) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 415]
mysqld!os_event_wait_time_low(struct os_event * event = 0x00000073`a9abec20, unsigned int64 time_in_usec = 0xf4240, int64 reset_sig_count = 0n2) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 519]
mysqld!pc_sleep_if_needed(unsigned int64 next_loop_time = 0x0000015a`fb8fb652, int64 sig_count = 0n2) [e:\elenst\10.2\storage\innobase\buf\buf0flu.cc @ 2689]
mysqld!buf_flush_page_cleaner_coordinator(void * arg = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\buf\buf0flu.cc @ 3191]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
.  9  Id: dd4.fa4 Suspend: 0 Teb: 00007ff7`9ad68000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::timed_wait(unsigned long time_in_ms = 0x3e8) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 262]
mysqld!os_event::wait_time_low(unsigned int64 time_in_usec = 0xf4240, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 415]
mysqld!os_event_wait_time_low(struct os_event * event = 0x00000073`a9cc42b0, unsigned int64 time_in_usec = 0xf4240, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 519]
mysqld!lock_wait_timeout_thread(void * __formal = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\lock\lock0wait.cc @ 530]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 10  Id: dd4.a54 Suspend: 0 Teb: 00007ff7`9ad66000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::timed_wait(unsigned long time_in_ms = 0x3e8) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 262]
mysqld!os_event::wait_time_low(unsigned int64 time_in_usec = 0xf4240, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 415]
mysqld!os_event_wait_time_low(struct os_event * event = 0x00000073`a9abdd40, unsigned int64 time_in_usec = 0xf4240, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 519]
mysqld!srv_error_monitor_thread(void * __formal = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\srv\srv0srv.cc @ 1979]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 11  Id: dd4.e7c Suspend: 0 Teb: 00007ff7`9ad64000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::timed_wait(unsigned long time_in_ms = 0x1388) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 262]
mysqld!os_event::wait_time_low(unsigned int64 time_in_usec = 0x4c4b40, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 415]
mysqld!os_event_wait_time_low(struct os_event * event = 0x00000073`a9abd800, unsigned int64 time_in_usec = 0x4c4b40, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 519]
mysqld!srv_monitor_thread(void * __formal = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\srv\srv0srv.cc @ 1754]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 12  Id: dd4.d1c Suspend: 0 Teb: 00007ff7`9ad62000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtDelayExecution
KERNELBASE!SleepEx
mysqld!os_thread_sleep(unsigned int64 tm = 0xf4240) [e:\elenst\10.2\storage\innobase\os\os0thread.cc @ 229]
mysqld!srv_master_sleep(void) [e:\elenst\10.2\storage\innobase\srv\srv0srv.cc @ 2515]
mysqld!srv_master_thread(void * arg = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\srv\srv0srv.cc @ 2563]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 13  Id: dd4.f24 Suspend: 0 Teb: 00007ff7`9ad60000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::wait(void) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 159]
mysqld!os_event::wait_low(int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 340]
mysqld!os_event_wait_low(struct os_event * event = 0x00000073`a9abe7c0, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 536]
mysqld!srv_resume_thread(struct srv_slot_t * slot = 0x00000073`a9ad3a98, int64 sig_count = 0n1, bool wait = true, unsigned int64 timeout_usec = 0) [e:\elenst\10.2\storage\innobase\srv\srv0srv.cc @ 934]
mysqld!srv_purge_coordinator_suspend(class THD * thd = 0x00000073`a9e61f68, struct srv_slot_t * slot = 0x00000073`a9ad3a98, unsigned int64 rseg_history_len = 0) [e:\elenst\10.2\storage\innobase\srv\srv0srv.cc @ 2862]
mysqld!srv_purge_coordinator_thread(void * arg = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\srv\srv0srv.cc @ 2954]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 14  Id: dd4.f7c Suspend: 0 Teb: 00007ff7`9ad5e000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::wait(void) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 159]
mysqld!os_event::wait_low(int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 340]
mysqld!os_event_wait_low(struct os_event * event = 0x00000073`a9abdfe0, int64 reset_sig_count = 0n0) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 536]
mysqld!srv_resume_thread(struct srv_slot_t * slot = 0x00000073`a9ad3ad0, int64 sig_count = 0n0, bool wait = true, unsigned int64 timeout_usec = 0) [e:\elenst\10.2\storage\innobase\srv\srv0srv.cc @ 934]
mysqld!srv_worker_thread(void * arg = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\srv\srv0srv.cc @ 2709]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 17  Id: dd4.cac Suspend: 0 Teb: 00007ff7`9ad58000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::wait(void) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 159]
mysqld!os_event::wait_low(int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 340]
mysqld!os_event_wait_low(struct os_event * event = 0x00000073`a9abe0c0, int64 reset_sig_count = 0n0) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 536]
mysqld!buf_dump_thread(void * __formal = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\buf\buf0dump.cc @ 816]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 18  Id: dd4.6e8 Suspend: 0 Teb: 00007ff7`9ad56000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::timed_wait(unsigned long time_in_ms = 0x2710) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 262]
mysqld!os_event::wait_time_low(unsigned int64 time_in_usec = 0x989680, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 415]
mysqld!os_event_wait_time_low(struct os_event * event = 0x00000073`a9cc5430, unsigned int64 time_in_usec = 0x989680, int64 reset_sig_count = 0n0) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 519]
mysqld!dict_stats_thread(void * __formal = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\dict\dict0stats_bg.cc @ 421]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 19  Id: dd4.b80 Suspend: 0 Teb: 00007ff7`9ad54000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::timed_wait(unsigned long time_in_ms = 0x1388) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 262]
mysqld!os_event::wait_time_low(unsigned int64 time_in_usec = 0x4c4b40, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 415]
mysqld!os_event_wait_time_low(struct os_event * event = 0x00000073`a9cd20f0, unsigned int64 time_in_usec = 0x4c4b40, int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 519]
mysqld!ib_wqueue_timedwait(struct ib_wqueue_t * wq = 0x00000073`a6448f80, int64 wait_in_usecs = 0n5000000) [e:\elenst\10.2\storage\innobase\ut\ut0wqueue.cc @ 161]
mysqld!fts_optimize_thread(void * arg = 0x00000073`a6448f80) [e:\elenst\10.2\storage\innobase\fts\fts0opt.cc @ 3044]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 20  Id: dd4.440 Suspend: 0 Teb: 00007ff7`9ad52000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtDelayExecution
KERNELBASE!SleepEx
mysqld!os_thread_sleep(unsigned int64 tm = 0xf4240) [e:\elenst\10.2\storage\innobase\os\os0thread.cc @ 229]
mysqld!btr_defragment_thread(void * arg = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\btr\btr0defragment.cc @ 758]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 21  Id: dd4.e0c Suspend: 0 Teb: 00007ff7`9ad50000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!os_event::wait(void) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 159]
mysqld!os_event::wait_low(int64 reset_sig_count = 0n1) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 340]
mysqld!os_event_wait_low(struct os_event * event = 0x00000073`a9abe8a0, int64 reset_sig_count = 0n0) [e:\elenst\10.2\storage\innobase\os\os0event.cc @ 536]
mysqld!buf_resize_thread(void * __formal = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\buf\buf0buf.cc @ 3181]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 22  Id: dd4.b0c Suspend: 0 Teb: 00007ff7`9ad4e000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!pthread_cond_timedwait(struct _RTL_CONDITION_VARIABLE * cond = 0x00000073`acccf848, struct _RTL_CRITICAL_SECTION * mutex = 0x00000073`acccf7f8, struct timespec * abstime = 0x00000000`00000000) [e:\elenst\10.2\mysys\my_wincond.c @ 82]
mysqld!pthread_cond_wait(struct _RTL_CONDITION_VARIABLE * cond = 0x00000073`acccf848, struct _RTL_CRITICAL_SECTION * mutex = 0x00000073`acccf7f8) [e:\elenst\10.2\mysys\my_wincond.c @ 91]
mysqld!inline_mysql_cond_wait(struct st_mysql_cond * that = 0x00000073`acccf848, struct st_mysql_mutex * mutex = 0x00000073`acccf7f8, char * src_file = 0x00007ff7`9c858720 "E:\elenst\10.2\storage\innobase\handler\ha_innodb.cc", unsigned int src_line = 0x152) [e:\elenst\10.2\include\mysql\psi\mysql_thread.h @ 1149]
mysqld!thd_destructor_proxy(void * __formal = 0x00000000`00000000) [e:\elenst\10.2\storage\innobase\handler\ha_innodb.cc @ 338]
mysqld!pfs_spawn_thread(void * arg = 0x00000073`a9e7bd98) [e:\elenst\10.2\storage\perfschema\pfs.cc @ 1864]
mysqld!pthread_start(void * p = 0x00000073`a9d2c860) [e:\elenst\10.2\mysys\my_winthread.c @ 61]
mysqld!invoke_thread_procedure(<function> * procedure = 0x00007ff7`9c1f74c0, void * context = 0x00000073`a9d2c860) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 92]
mysqld!thread_start<unsigned int (void * parameter = 0x00000073`a9e74440) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 115]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 23  Id: dd4.584 Suspend: 0 Teb: 00007ff7`9ad4c000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!pthread_cond_timedwait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ff7`9e6ad018, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ff7`9e6acfe8, struct timespec * abstime = 0x00000073`ae73f768) [e:\elenst\10.2\mysys\my_wincond.c @ 82]
mysqld!inline_mysql_cond_timedwait(struct st_mysql_cond * that = 0x00007ff7`9e6ad018, struct st_mysql_mutex * mutex = 0x00007ff7`9e6acfe8, struct timespec * abstime = 0x00000073`ae73f768, char * src_file = 0x00007ff7`9dc226e8 "--- memory read error at address 0x00007ff7`9dc226e8 ---", unsigned int src_line = 0x74) [e:\elenst\10.2\include\mysql\psi\mysql_thread.h @ 1175]
mysqld!my_service_thread_sleep(struct st_ma_service_thread_control * control = 0x00007ff7`9dbf7db0, unsigned int64 sleep_time = 0x00000006`c088e200) [e:\elenst\10.2\storage\maria\ma_servicethread.c @ 119]
mysqld!ma_checkpoint_background(void * arg = 0x00000000`0000001e) [e:\elenst\10.2\storage\maria\ma_checkpoint.c @ 708]
mysqld!pfs_spawn_thread(void * arg = 0x00000073`a9e60d88) [e:\elenst\10.2\storage\perfschema\pfs.cc @ 1864]
mysqld!pthread_start(void * p = 0x00000073`a9d2ce90) [e:\elenst\10.2\mysys\my_winthread.c @ 61]
mysqld!invoke_thread_procedure(<function> * procedure = 0x00007ff7`9c1f74c0, void * context = 0x00000073`a9d2ce90) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 92]
mysqld!thread_start<unsigned int (void * parameter = 0x00000073`a9e74260) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 115]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 24  Id: dd4.cb0 Suspend: 0 Teb: 00007ff7`9ad4a000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtGetContextThread
mysqld!__ImageBase
0x22
0x00007ff7`000018dc
0x00000073`ae8374d0
0x00000073`ae837430
0x00000073`ae83c890
0x00000073`ae837490
0x1
0x00000073`ae837448
0x00000073`ae837440
0x00000073`ae837a30
0xae837900
0x00007ffb`00000023
0x00000073`ae840000
0x00000073`ae82f000
 
. 25  Id: dd4.1c4 Suspend: 0 Teb: 00007ff7`9ad48000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForSingleObject
KERNELBASE!WaitForSingleObjectEx
mysqld!handle_shutdown(void * arg = 0x00000000`00000000) [e:\elenst\10.2\sql\mysqld.cc @ 3673]
mysqld!pfs_spawn_thread(void * arg = 0x00000073`ad5cef38) [e:\elenst\10.2\storage\perfschema\pfs.cc @ 1864]
mysqld!pthread_start(void * p = 0x00000073`a9d2db80) [e:\elenst\10.2\mysys\my_winthread.c @ 61]
mysqld!invoke_thread_procedure(<function> * procedure = 0x00007ff7`9c1f74c0, void * context = 0x00000073`a9d2db80) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 92]
mysqld!thread_start<unsigned int (void * parameter = 0x00000073`ad5cc9d0) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 115]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 26  Id: dd4.d64 Suspend: 0 Teb: 00007ff7`9ad46000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForAlertByThreadId
ntdll!RtlSleepConditionVariableCS
KERNELBASE!SleepConditionVariableCS
mysqld!pthread_cond_timedwait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ff7`9de3b8c8, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ff7`9de3b660, struct timespec * abstime = 0x00000000`00000000) [e:\elenst\10.2\mysys\my_wincond.c @ 82]
mysqld!pthread_cond_wait(struct _RTL_CONDITION_VARIABLE * cond = 0x00007ff7`9de3b8c8, struct _RTL_CRITICAL_SECTION * mutex = 0x00007ff7`9de3b660) [e:\elenst\10.2\mysys\my_wincond.c @ 91]
mysqld!inline_mysql_cond_wait(struct st_mysql_cond * that = 0x00007ff7`9de3b8c8, struct st_mysql_mutex * mutex = 0x00007ff7`9de3b660, char * src_file = 0x00007ff7`9c544978 "E:\elenst\10.2\sql\slave.cc", unsigned int src_line = 0x153) [e:\elenst\10.2\include\mysql\psi\mysql_thread.h @ 1138]
mysqld!handle_slave_background(void * arg = 0x00000000`00000000) [e:\elenst\10.2\sql\slave.cc @ 340]
mysqld!pfs_spawn_thread(void * arg = 0x00000073`ad5bb3e8) [e:\elenst\10.2\storage\perfschema\pfs.cc @ 1864]
mysqld!pthread_start(void * p = 0x00000073`a9d2dc10) [e:\elenst\10.2\mysys\my_winthread.c @ 61]
mysqld!invoke_thread_procedure(<function> * procedure = 0x00007ff7`9c1f74c0, void * context = 0x00000073`a9d2dc10) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 92]
mysqld!thread_start<unsigned int (void * parameter = 0x00000073`ad5cd970) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 115]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 27  Id: dd4.d08 Suspend: 0 Teb: 00007ff7`9ad44000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForSingleObject
mswsock!SockWaitForSingleObject
mswsock!WSPSelect
ws2_32!select
mysqld!handle_connections_sockets(void) [e:\elenst\10.2\sql\mysqld.cc @ 6573]
mysqld!handle_connections_sockets_thread(void * arg = 0x00000000`00000000) [e:\elenst\10.2\sql\mysqld.cc @ 6775]
mysqld!pfs_spawn_thread(void * arg = 0x00000073`ad5cef38) [e:\elenst\10.2\storage\perfschema\pfs.cc @ 1864]
mysqld!pthread_start(void * p = 0x00000073`a9d2ee10) [e:\elenst\10.2\mysys\my_winthread.c @ 61]
mysqld!invoke_thread_procedure(<function> * procedure = 0x00007ff7`9c1f74c0, void * context = 0x00000073`a9d2ee10) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 92]
mysqld!thread_start<unsigned int (void * parameter = 0x00000073`ad5cbf30) [d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 115]
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
. 28  Id: dd4.eb8 Suspend: 0 Teb: 00007ff7`9ad42000 Unfrozen
      Priority: 0  Priority class: 32
 
ntdll!NtWaitForWorkViaWorkerFactory
ntdll!TppWorkerThread
kernel32!BaseThreadInitThunk
ntdll!RtlUserThreadStart
 
Total threads: 29
Duplicate callstacks: 7 (windbg thread #s follow):
3, 4, 5, 6, 7, 15, 16
quit:



 Comments   
Comment by Elena Stepanova [ 2017-04-04 ]

This is a big problem in regular optimizer tests. Please pick it up for the next 10.2 sprint.

Comment by Varun Gupta (Inactive) [ 2017-04-30 ]

The query with MIN() funtion does not fail:
SELECT MIN(t1.pk) FROM t t1 INNER JOIN t t2 ON t1.f1 = t2.f1 WHERE t1.pk <= 4;

Comment by Varun Gupta (Inactive) [ 2017-05-02 ]

After further investigation,

the function where the memory corruption happens is

static bool find_key_for_maxmin(bool max_fl, TABLE_REF *ref,
                                Field* field, COND *cond,
                                uint *range_fl, uint *prefix_len)

Comment by Varun Gupta (Inactive) [ 2017-05-02 ]

After adding the particular code to opt_sum_query

int32 start_guard = 0x13456;
uchar key_buff[MAX_KEY_LENGTH];
int32 end_guard = 0x13456;           

So by adding this code, we find the memory corruption actually occurs in the function

static bool find_key_for_maxmin(bool max_fl, TABLE_REF *ref,
                                Field* field, COND *cond,
                                uint *range_fl, uint *prefix_len)

Comment by Varun Gupta (Inactive) [ 2017-05-04 ]

After doubling the size of the key_buffer , we don't encounter the run-time error. Originally with the size of key_buffer = MAX_KEY_LENGTH, the length of the key was 3079.

          int32 start_guard= 1234;
          uchar key_buff[2*MAX_KEY_LENGTH];
          int32 end_guard= 1234;  

Comment by Varun Gupta (Inactive) [ 2017-05-04 ]

In the function matching_cond

uchar *key_ptr= ref->key_buff;
 KEY_PART_INFO *part;
 for (part= keyinfo->key_part; ; key_ptr+= part++->store_length)
 {
  if (part > field_part)
   DBUG_RETURN(FALSE);           // Field is beyond the tested parts
  if (part->field->eq(((Item_field*) args[0])->field))
   break;            // Found a part of the key for the field
 }

we have the size of key_buff set to MAX_KEY_LENGTH
uchar key_buff[MAX_KEY_LENGTH];

(gdb) p keyinfo->key_part[0].store_length
$25 = 3075
(gdb) p keyinfo->key_part[0].field->field_name
$26 = 0x7fff8401a9f7 "f2"

So the length 3075 is greater than MAX_KEY_LENGTH

Comment by Varun Gupta (Inactive) [ 2017-05-04 ]

So the main issue is that there are keys created with length > MAX_KEY_LENGTH

there are two reasons for this:

  • the code that counts forgets to add the NULL-byte and VARCHAR-length bytes
  • there are also "extended keys".. PK suffix at the end of the key is not counted either
Comment by Varun Gupta (Inactive) [ 2017-05-12 ]

* thread #2: tid = 0xf11a6, 0x0000000100c72229 mysqld`add_pk_parts_to_sk(sk=0x0000000103a648b0, sk_n=1, pk=0x0000000103a64830, pk_n=0, share=0x0000700000b3e490, handler_file=0x0000000103a51030, usable_parts=0x0000700000b3d348) + 41 at table.cc:979, stop reason = breakpoint 5.1
    frame #0: 0x0000000100c72229 mysqld`add_pk_parts_to_sk(sk=0x0000000103a648b0, sk_n=1, pk=0x0000000103a64830, pk_n=0, share=0x0000700000b3e490, handler_file=0x0000000103a51030, usable_parts=0x0000700000b3d348) + 41 at table.cc:979
   976 	                               TABLE_SHARE *share, handler *handler_file,
   977 	                               uint *usable_parts)
   978 	{
-> 979 	  uint max_key_length= sk->key_length;
   980 	  bool is_unique_key= false;
   981 	  KEY_PART_INFO *current_key_part= &sk->key_part[sk->user_defined_key_parts];
   982 	
(lldb) p sk->key_length
(uint) $115 = 3075

Here we see the secondary key f2(varchar 1024) includes the length and null bytes

Comment by Varun Gupta (Inactive) [ 2017-05-12 ]

Also in mysql

 
if (max_key_length + pk_key_part->length > MAX_KEY_LENGTH)
        goto end;

  Generate extended secondary keys by adding primary key parts to the
  existing secondary key. A primary key part is added if such part doesn't
  present in the secondary key or the part in the secondary key is a
  prefix of the key field. Key parts are added till:
  1) all parts were added
  2) number of key parts became bigger that MAX_REF_PARTS
  3) total key length became longer than MAX_REF_LENGTH
 
So all the three condition are implemented in mysql 5.6 and 5.7,  mariadb is missing condition 3.

Comment by Sergei Petrunia [ 2017-05-17 ]

Checked MyRocks source code. It should be able to handle the fact that SQL layer doesn't create extensions for certain keys.

Comment by Varun Gupta (Inactive) [ 2017-05-19 ]

For this test case we get a crash on 10.1

set global innodb_file_format = BARRACUDA;
set global innodb_large_prefix = ON;
show global variables like 'innodb_lar%';
Variable_name	Value
innodb_large_prefix	ON
CREATE TABLE t (
pk INT, 
f1 VARCHAR(3), 
f2 VARCHAR(1024), 
PRIMARY KEY (pk), 
KEY(f2)
) ENGINE=InnoDB CHARSET utf8 ROW_FORMAT= DYNAMIC;
INSERT INTO t VALUES (1,'foo','abc'),(2,'bar','def');
SELECT MAX(t1.pk) FROM t t1 INNER JOIN t t2 ON t1.f1 = t2.f1 WHERE t1.pk <= 4;

Comment by Sergei Petrunia [ 2017-05-19 ]

Looking at the patch, I see the following logic:

if (key_length  + index_extension_key_length > MAX_KEY_LENGTH) 
{
  don't use add index extension;
}

Note that the entire index extension is removed. Consider a case

KEY (kp1, kp2)
PRIMARY KEY(pk1, pk2)

suppose, length(kp1, kp2, pk1, pk2) > MAX_KEY_LENGTH while length(kp1, kp2, pk1) < MAX_KEY_LENGTH. We could have extended the index with just pk1 but the patch does not do that.

varun, I assume MySQL's solution also has this property?

Generated at Thu Feb 08 07:48:03 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.