[MDEV-18013] ma_bitmap.c:3108: flush_log_for_bitmap: Assertion `share->now_transactional' failed Created: 2018-12-14  Updated: 2023-04-27

Status: Confirmed
Project: MariaDB Server
Component/s: Storage Engine - Aria
Affects Version/s: 10.4.1, 10.2.20, 10.3.12, 10.5
Fix Version/s: 10.4, 10.5

Type: Bug Priority: Major
Reporter: Matthias Leich Assignee: Michael Widenius
Resolution: Unresolved Votes: 0
Labels: None
Environment:

Linux Ubuntu 17.10 but most probably unimportant


Attachments: File MDEV-18013.tgz     HTML File prt    

 Description   

The problem was observed on the following MariaDB trees
10.2 c1caada886270567bfc9d4f57f5ea40d31dd56ea 2018-12-13
10.3 f6e16bdc62d80a1b26a955aafb1b60fafa912beb 2018-12-13
10.4 67e3d1ee93505e320bdb4343a8a8be827183a58e 2018-12-14
Compile from source with debug
 
./mysql-test-run.pl bug_aria3 
============================================
TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------
 
worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
main.bug_aria3                           [ fail ]
        Test ended at 2018-12-14 12:08:52
 
CURRENT_TEST: main.bug_aria3
...
 
Version: '10.2.20-MariaDB-debug-log'  socket: ...
mysqld: /home/mleich/Server/10.2/storage/maria/ma_bitmap.c:3108: flush_log_for_bitmap: Assertion `share->now_transactional' failed.
181214 12:08:52 [ERROR] mysqld got signal 6 ;
...
Query (0x7ff26c010780): CHECK TABLE t1
Connection ID (thread ID): 6
Status: NOT_KILLED
 
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#5  0x00007ff294a38f5d in __GI_abort () at abort.c:90
#6  0x00007ff294a2ef17 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x558a964dc82b "share->now_transactional", file=file@entry=0x558a964dbc60 "storage/maria/ma_bitmap.c", line=line@entry=3108, function=function@entry=0x558a964dcb80 <__PRETTY_FUNCTION__.16870> "flush_log_for_bitmap") at assert.c:92
#7  0x00007ff294a2efc2 in __GI___assert_fail (assertion=0x558a964dc82b "share->now_transactional", file=0x558a964dbc60 "storage/maria/ma_bitmap.c", line=3108, function=0x558a964dcb80 <__PRETTY_FUNCTION__.16870> "flush_log_for_bitmap") at assert.c:101
#8  0x0000558a96034945 in flush_log_for_bitmap (args=0x7ff28ac67ad0) at storage/maria/ma_bitmap.c:3108
#9  0x0000558a95fe2ca4 in pagecache_fwrite (pagecache=0x558a975dd720 <maria_pagecache_var>, filedesc=0x7ff28b82a490, buffer=0x7ff28b861018 "\001", pageno=0, type=PAGECACHE_PLAIN_PAGE, flags=36) at storage/maria/ma_pagecache.c:660
#10 0x0000558a95fec630 in flush_cached_blocks (pagecache=0x558a975dd720 <maria_pagecache_var>, file=0x7ff26c019280, cache=0x7ff28ac67ca0, end=0x7ff28ac67cb0, type=FLUSH_FORCE_WRITE, first_errno=0x7ff28ac67c04) at storage/maria/ma_pagecache.c:4420
#11 0x0000558a95fecfe7 in flush_pagecache_blocks_int (pagecache=0x558a975dd720 <maria_pagecache_var>, file=0x7ff26c019280, type=FLUSH_FORCE_WRITE, filter=0x0, filter_arg=0x0) at storage/maria/ma_pagecache.c:4716
#12 0x0000558a95fed408 in flush_pagecache_blocks_with_filter (pagecache=0x558a975dd720 <maria_pagecache_var>, file=0x7ff26c019280, type=FLUSH_FORCE_WRITE, filter=0x0, filter_arg=0x0) at storage/maria/ma_pagecache.c:4833
#13 0x0000558a960082cd in _ma_flush_table_files (info=0x7ff26c018e48, flush_data_or_index=3, flush_type_for_data=FLUSH_FORCE_WRITE, flush_type_for_index=FLUSH_FORCE_WRITE) at storage/maria/ma_extra.c:643
#14 0x0000558a9604888f in maria_chk_size (param=0x7ff26c01f000, info=0x7ff26c018e48) at storage/maria/ma_check.c:418
#15 0x0000558a95fbfc86 in ha_maria::check (this=0x7ff26c018750, thd=0x7ff26c000ce8, check_opt=0x7ff26c0057d8) at storage/maria/ha_maria.cc:1339
#16 0x0000558a95a1f0db in handler::ha_check (this=0x7ff26c018750, thd=0x7ff26c000ce8, check_opt=0x7ff26c0057d8) at sql/handler.cc:3974
#17 0x0000558a958fbac6 in mysql_admin_table (thd=0x7ff26c000ce8, tables=0x7ff26c010848, check_opt=0x7ff26c0057d8, operator_name=0x558a9629c23c "check", lock_type=TL_READ_NO_INSERT, org_open_for_modify=false, repair_table_use_frm=false, extra_open_options=32, prepare_func=0x0, operator_func=(int (handler::*)(handler * const, THD *, HA_CHECK_OPT *)) 0x558a95a1efb6 <handler::ha_check(THD*, st_ha_check_opt*)>, view_operator_func=0x558a958971fe <view_check(THD*, TABLE_LIST*, st_ha_check_opt*)>) at sql/sql_admin.cc:798
#18 0x0000558a958fdc4b in Sql_cmd_check_table::execute (this=0x7ff26c010e60, thd=0x7ff26c000ce8) at sql/sql_admin.cc:1342 
#19 0x0000558a957a72a0 in mysql_execute_command (thd=0x7ff26c000ce8) at sql/sql_parse.cc:6227
#20 0x0000558a957ac3ec in mysql_parse (thd=0x7ff26c000ce8, rawbuf=0x7ff26c010780 "CHECK TABLE t1", length=14, parser_state=0x7ff28ac6d1f0, is_com_multi=false, is_next_command=false) at sql/sql_parse.cc:8014
#21 0x0000558a95799a6d in dispatch_command (command=COM_QUERY, thd=0x7ff26c000ce8, packet=0x7ff26c008469 "", packet_length=15, is_com_multi=false, is_next_command=false) at sql/sql_parse.cc:1824
#22 0x0000558a9579840b in do_command (thd=0x7ff26c000ce8) at sql/sql_parse.cc:1378
#23 0x0000558a958e977f in do_handle_one_connection (connect=0x558a980719d8) at sql/sql_connect.cc:1335
#24 0x0000558a958e94ff in handle_one_connection (arg=0x558a980719d8) at sql/sql_connect.cc:1241
 
The problem was found during RQG testing.
There it shows quite frequent up in case tables using Aria get exposed to a DDL/DML mix. 



 Comments   
Comment by Matthias Leich [ 2018-12-14 ]

prt
    Protocol of my MTR test run on 10.2
MDEV-18013.tgz 
    Archive to be extracted in <source tree>/mysql-test
    Content:
    t/bug_aria3.test   -- Test script
    mysqltest_background.sh -- Shellscript called by bug_aria3.test

Comment by Alice Sherepa [ 2020-09-21 ]

observed on 10.5 ccbe6bb6fc3cbe31e74404723

mysqld: /10.5/storage/maria/ma_bitmap.c:3111: flush_log_for_bitmap: Assertion `share->now_transactional' failed.
200920 14:53:00 [ERROR] mysqld got signal 6 ;
 
Server version: 10.5.6-MariaDB-debug-log
 
maria/ma_bitmap.c:3116(flush_log_for_bitmap)[0x557664cca7bf]
maria/ma_pagecache.c:675(pagecache_fwrite)[0x557664cd7c7d]
maria/ma_pagecache.c:4812(flush_cached_blocks)[0x557664cd879a]
maria/ma_pagecache.c:5108(flush_pagecache_blocks_int)[0x557664cd8bec]
maria/ma_pagecache.c:5223(flush_pagecache_blocks_with_filter)[0x557664cf4d5c]
maria/ma_extra.c:646(_ma_flush_table_files)[0x557664d39b21]
maria/ma_check.c:422(maria_chk_size)[0x557664ca0c2d]
maria/ha_maria.cc:1309(ha_maria::check(THD*, st_ha_check_opt*))[0x557664a1e5bc]
sql/handler.cc:4574(handler::ha_check(THD*, st_ha_check_opt*))[0x5576648704ec]
sql/sql_admin.cc:791(mysql_admin_table(THD*, TABLE_LIST*, st_ha_check_opt*, char const*, thr_lock_type, bool, bool, unsigned int, int (*)(THD*, TABLE_LIST*, st_ha_check_opt*), int (handler::*)(THD*, st_ha_check_opt*), int (*)(THD*, TABLE_LIST*, st_ha_check_opt*)))[0x55766487270a]
sql/sql_admin.cc:1361(Sql_cmd_check_table::execute(THD*))[0x5576646c33d1]
sql/sql_parse.cc:5952(mysql_execute_command(THD*))[0x5576646c96db]
sql/sql_parse.cc:7994(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x5576646b5b1b]
sql/sql_parse.cc:1870(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x5576646b4251]
sql/sql_parse.cc:1348(do_command(THD*))[0x557664859665]
sql/sql_connect.cc:1410(do_handle_one_connection(CONNECT*, bool))[0x5576648593ce]
sql/sql_connect.cc:1314(handle_one_connection)[0x557664d958cd]
nptl/pthread_create.c:487(start_thread)[0x7f8c268e2fa3]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f8c25eeb4cf]
 
Query (0x7f8ac4012b40): CHECK TABLE t1

Generated at Thu Feb 08 08:40:50 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.