[MDEV-17636] Assertion `pagecache->block_root[i].status == 0' failed in check_pagecache_is_cleaned_up upon server shutdown Created: 2018-11-07  Updated: 2019-06-18  Resolved: 2019-06-18

Status: Closed
Project: MariaDB Server
Component/s: Admin statements, Data Definition - Temporary, Storage Engine - Aria
Affects Version/s: 10.2, 10.3, 10.4
Fix Version/s: 10.2.26, 10.3.17, 10.4.6

Type: Bug Priority: Minor
Reporter: Elena Stepanova Assignee: Michael Widenius
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Duplicate
duplicates MDEV-19055 Assertion `(_my_thread_var())->thr_er... Closed
Relates
relates to MDEV-17622 Assertion `block->type == PAGECACHE_E... Closed
relates to MDEV-17659 Error 175 "File too short; Expected m... Closed

 Description   

The test is non-deterministic, run with --repeat=N. It usually fails for me within first 5 attempts, but it can vary on different machines and builds.

CREATE TABLE t (pk INT) ENGINE=Aria;
INSERT INTO t VALUES (1),(2);
SELECT * FROM t INTO OUTFILE 'load.data';
 
--connect (con1,localhost,root,,test)
 
CREATE TEMPORARY TABLE tmp (pk INT) ENGINE=Aria;
REPLACE INTO tmp (pk) VALUES (1); 
SELECT pk FROM tmp UNION ALL SELECT pk FROM tmp;
DELETE FROM tmp LIMIT 3;
 
--send
  OPTIMIZE TABLE tmp;
 
--connection default
 
DROP TABLE t;
 
--connection con1
--reap
LOAD DATA INFILE 'load.data' IGNORE INTO TABLE tmp;
 
DELETE FROM tmp LIMIT 1;
 
--error 0,1030
SELECT pk FROM tmp WHERE pk IN ( SELECT pk FROM tmp );
 
--connection default
--source include/restart_mysqld.inc
 
# Cleanup
--let $datadir= `select @@datadir`
--remove_file $datadir/test/load.data

10.2 af9649c722810

mysqld: /data/src/10.2/storage/maria/ma_pagecache.c:1142: check_pagecache_is_cleaned_up: Assertion `pagecache->block_root[i].status == 0' failed.
181107 16:34:08 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f0c4263dee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x0000563faf4bc20a in check_pagecache_is_cleaned_up (pagecache=0x563fb0e39100 <maria_pagecache_var>) at /data/src/10.2/storage/maria/ma_pagecache.c:1142
#9  0x0000563faf4bc311 in end_pagecache (pagecache=0x563fb0e39100 <maria_pagecache_var>, cleanup=1 '\001') at /data/src/10.2/storage/maria/ma_pagecache.c:1175
#10 0x0000563faf4d478a in maria_end () at /data/src/10.2/storage/maria/ma_init.c:109
#11 0x0000563faf51b584 in maria_panic (flag=HA_PANIC_CLOSE) at /data/src/10.2/storage/maria/ma_panic.c:135
#12 0x0000563faf49d1db in maria_hton_panic (hton=0x563fb2449d10, flag=HA_PANIC_CLOSE) at /data/src/10.2/storage/maria/ha_maria.cc:3308
#13 0x0000563faf28db21 in ha_finalize_handlerton (plugin=0x563fb241cba8) at /data/src/10.2/sql/handler.cc:460
#14 0x0000563faf02e67b in plugin_deinitialize (plugin=0x563fb241cba8, ref_check=true) at /data/src/10.2/sql/sql_plugin.cc:1219
#15 0x0000563faf02eae8 in reap_plugins () at /data/src/10.2/sql/sql_plugin.cc:1295
#16 0x0000563faf030b2f in plugin_shutdown () at /data/src/10.2/sql/sql_plugin.cc:1953
#17 0x0000563faef31ad4 in clean_up (print_message=true) at /data/src/10.2/sql/mysqld.cc:2220
#18 0x0000563faef315fe in unireg_end () at /data/src/10.2/sql/mysqld.cc:2094
#19 0x0000563faef314fb in kill_server (sig_ptr=0x0) at /data/src/10.2/sql/mysqld.cc:2021
#20 0x0000563faef3153d in kill_server_thread (arg=0x7f0c3c9ade00) at /data/src/10.2/sql/mysqld.cc:2044
#21 0x0000563faf5857ac in pfs_spawn_thread (arg=0x7f0c340013f0) at /data/src/10.2/storage/perfschema/pfs.cc:1862
#22 0x00007f0c44314494 in start_thread (arg=0x7f0c3c886700) at pthread_create.c:333
#23 0x00007f0c426fa93f in clone () from /lib/x86_64-linux-gnu/libc.so.6

Not reproducible with the provided test case on 10.4, possibly fixed by all the Aria changes.
Not reproducible with the provided test case on 10.1, because the temporary table cannot be re-opened there.
No obvious effect on a non-debug build.



 Comments   
Comment by Alice Sherepa [ 2019-01-09 ]

got it on 10.4 30da40bb8c303159747

mysqld: /git/10.4/storage/maria/ma_pagecache.c:1142: check_pagecache_is_cleaned_up: Assertion `pagecache->block_root[i].status == 0' failed.
190109 15:47:42 [ERROR] mysqld got signal 6 ;
Server version: 10.4.2-MariaDB-debug-log
 
stdlib/abort.c:91(__GI_abort)[0x7f448728a02a]
assert/assert.c:92(__assert_fail_base)[0x7f4487280bd7]
/lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7f4487280c82]
maria/ma_pagecache.c:1143(check_pagecache_is_cleaned_up)[0x55e39e331177]
maria/ma_pagecache.c:1178(end_pagecache)[0x55e39e3312ad]
maria/ma_init.c:111(maria_end)[0x55e39e34ab21]
maria/ma_panic.c:136(maria_panic)[0x55e39e393cc5]
maria/ha_maria.cc:3384(maria_hton_panic(handlerton*, ha_panic_function))[0x55e39e30f89a]
sql/handler.cc:464(ha_finalize_handlerton(st_plugin_int*))[0x55e39e0ece60]
sql/sql_plugin.cc:1240(plugin_deinitialize(st_plugin_int*, bool))[0x55e39ddf258d]
sql/sql_plugin.cc:1315(reap_plugins())[0x55e39ddf2a81]
sql/sql_plugin.cc:1983(plugin_shutdown())[0x55e39ddf4c53]
sql/mysqld.cc:2140(clean_up(bool))[0x55e39dcaaf16]
sql/mysqld.cc:2014(unireg_end())[0x55e39dcaaa91]
sql/mysqld.cc:1957(kill_server(int))[0x55e39dcaa96f]
sql/mysqld.cc:1966(kill_server_thread)[0x55e39dcaa9cd]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f4487ec56ba]
x86_64/clone.S:111(clone)[0x7f448735a41d]

Comment by Michael Widenius [ 2019-06-18 ]

Issue fixed as part of MDEV-19055

Comment by Michael Widenius [ 2019-06-18 ]

Issue fixed as part of MDEV-19055

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