maria.optimize corrupts stack around alloca() call
Bug #686010 reported by
Vladislav Vaintroub
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MariaDB |
Fix Released
|
Medium
|
Michael Widenius |
Bug Description
5.1, debug compilation, VS2010.
maria.optimize fails due to runtime check by compiler
maria.optimize [ fail ] Found warnings/errors in server log file!
Test ended at 2010-12-06 14:09:08
line
Error:Run-Time Check Failure #4 - Stack area around _alloca memory reserved by this function is corrupted
Changed in maria: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
This is runtime check due to compiler option /RTC1.
The callstack leading to it is can be examined if mysqld.exe is started under debugger
perl mysql-test-run.pl --suite=maria optimize --debugger=devenv
> mysqld. exe!sort_ one_index( st_handler_ check_param * param, st_maria_handler * info, st_maria_keydef * keyinfo, unsigned __int64 pagepos, int new_file) Line 3211 + 0x15 bytes C exe!sort_ one_index( st_handler_ check_param * param, st_maria_handler * info, st_maria_keydef * keyinfo, unsigned __int64 pagepos, int new_file) Line 3163 + 0x1d bytes C exe!maria_ sort_index( st_handler_ check_param * param, st_maria_handler * info, char * name) Line 3036 + 0x2d bytes C exe!ha_ maria:: repair( THD * thd, st_handler_ check_param * param, bool do_optimize) Line 1526 + 0x1a bytes C++ exe!ha_ maria:: optimize( THD * thd, st_ha_check_opt * check_opt) Line 1403 + 0x12 bytes C++ exe!handler: :ha_optimize( THD * thd, st_ha_check_opt * check_opt) Line 3296 + 0x1a bytes C++ exe!mysql_ admin_table( THD * thd, TABLE_LIST * tables, st_ha_check_opt * check_opt, const char * operator_name, thr_lock_type lock_type, bool open_for_modify, bool no_warnings_ for_error, unsigned int extra_open_options, int (THD *, TABLE_LIST *, st_ha_check_opt *)* prepare_func, int (THD *, st_ha_check_opt *)* operator_func, int (THD *, TABLE_LIST *)* view_operator_func) Line 4819 + 0x19 bytes C++ exe!mysql_ optimize_ table(THD * thd, TABLE_LIST * tables, st_ha_check_opt * check_opt) Line 5093 + 0x51 bytes C++ exe!mysql_ execute_ command( THD * thd) Line 3130 + 0x3d bytes C++ exe!mysql_ parse(THD * thd, char * rawbuf, unsigned int length, const char * * found_semicolon) Line 6151 + 0x9 bytes C++ exe!dispatch_ command( enum_server_ command command, THD * thd, char * packet, unsigned int packet_length) Line 1273 + 0x22 bytes C++ exe!do_ command( THD * thd) Line 899 + 0x1b bytes C++
mysqld.
mysqld.
mysqld.
mysqld.
mysqld.
mysqld.
mysqld.
mysqld.
mysqld.
mysqld.
mysqld.