Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
None
-
None
-
10.11.10
Compiled with debugging
Description
Trace after crash with: mariabackup.alter_copy_race
It always crashes when I run the above test case.
The result from queries just before the failure was:
# xtrabackup backup
|
CREATE TABLE t1(i int) ENGINE=InnoDB; |
INSERT into t1 values(1); |
connect con2, localhost, root,,; |
connection con2; |
set lock_wait_timeout=1; |
SET debug_sync='copy_data_between_tables_before_reset_backup_lock SIGNAL go WAIT_FOR after_backup_stage_block_ddl'; |
SET debug_sync='alter_table_after_temp_table_drop SIGNAL temp_table_dropped'; |
SET debug_sync='now WAIT_FOR after_backup_stage_start';ALTER TABLE test.t1 FORCE, algorithm=COPY;| |
connection default; |
Backtrace:
Thread 1 (Thread 0x7ffff11fd700 (LWP 7099)):
|
#0 0x00007ffff6453d2b in raise () from /lib64/libc.so.6
|
#1 0x00007ffff6455394 in abort () from /lib64/libc.so.6
|
#2 0x000000000172677e in ut_dbg_assertion_failed (expr=0x19ab8ef "opt_no_lock", file=0x19ab2e8 "/my/maria-10.11/extra/mariabackup/xtrabackup.cc", line=1214) at /my/maria-10.11/storage/innobase/ut/ut0dbg.cc:60
|
#3 0x000000000089aa9f in backup_file_op_fail (space_id=6, type=144, name=0x7ffff120e016 "", len=28, new_name=0x0, new_len=0) at /my/maria-10.11/extra/mariabackup/xtrabackup.cc:1214
|
#4 0x000000000158b23e in recv_sys_t::parse<recv_buf, (recv_sys_t::store)1> (this=0x260fc80 <recv_sys>, l=..., if_exists=false) at /my/maria-10.11/storage/innobase/log/log0recv.cc:3072
|
#5 0x00000000015869c8 in recv_sys_t::parse_mtr<(recv_sys_t::store)1> (if_exists=false) at /my/maria-10.11/storage/innobase/log/log0recv.cc:3115
|
#6 0x00000000015869e2 in recv_sys_t::parse_mmap<(recv_sys_t::store)1> (if_exists=false) at /my/maria-10.11/storage/innobase/log/log0recv.cc:3127
|
#7 0x000000000089e9ea in xtrabackup_copy_mmap_logfile () at /my/maria-10.11/extra/mariabackup/xtrabackup.cc:3423
|
#8 0x000000000089edee in xtrabackup_copy_logfile () at /my/maria-10.11/extra/mariabackup/xtrabackup.cc:3487
|
#9 0x000000000089f88f in log_copying_thread () at /my/maria-10.11/extra/mariabackup/xtrabackup.cc:3654
|
#10 0x00000000008b7e80 in std::__invoke_impl<void, void (*)()> (__f=@0x3299698: 0x89f862 <log_copying_thread()>) at /usr/include/c++/7/bits/invoke.h:60
|
#11 0x00000000008b311a in std::__invoke<void (*)()> (__fn=@0x3299698: 0x89f862 <log_copying_thread()>) at /usr/include/c++/7/bits/invoke.h:95
|
#12 0x00000000008c79f2 in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul> (this=0x3299698) at /usr/include/c++/7/thread:234
|
#13 0x00000000008c79c3 in std::thread::_Invoker<std::tuple<void (*)()> >::operator() (this=0x3299698) at /usr/include/c++/7/thread:243
|
#14 0x00000000008c79a2 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run (this=0x3299690) at /usr/include/c++/7/thread:186
|
#15 0x00007ffff609f713 in ?? () from /usr/lib64/libstdc++.so.6
|
#16 0x00007ffff75256ea in start_thread () from /lib64/libpthread.so.0
|
#17 0x00007ffff652150f in clone () from /lib64/libc.so.6
|
The code where it fails:
1213
|
if (fail) { |
1214
|
ut_a(opt_no_lock);
|
1215
|
die("DDL operation detected in the late phase of backup." |
1216
|
"Backup is inconsistent. Remove --no-lock option to fix."); |
I checked with gdb that opt_no_lock == 0
'type' in backup_file_op_fail(uint32_t space_id, int type..) is 144 == FILE_DELETE
spacename = "mysql/innodb_table_stats"