"First-time poster here - we're a small ops team running a Galera cluster in 
production and ran into what we believe is a significant, reproducible InnoDB 
purge bug during a recovery effort. Details below."

Subject: Re: MDEV-33315 - InnoDB purge coordinator permanently frozen on 
10.11.18 (Galera), strong reproduction evidence, unable to access JIRA (CAPTCHA)

Hi all,

We are experiencing what appears to be the same issue reported in MDEV-33315 
("InnoDB history length and undo tablespace files keep growing"), which was 
closed as Incomplete due to insufficient reproduction data. We believe we now 
have significantly stronger evidence and would like to either get that issue 
reopened or start a new discussion here, since we are currently unable to log 
into jira.mariadb.org (the CAPTCHA is not rendering/completing for us, tried 
multiple browsers).

If anyone here has the ability to reopen MDEV-33315 or can point us to an 
alternative way to attach this report, we'd appreciate it.

--- Summary ---

After an unclean shutdown/crash on a Galera cluster node, the InnoDB purge 
coordinator gets stuck at a fixed transaction ID boundary and makes zero 
progress across multiple full process restarts (each including a fresh crash 
recovery) - bit-for-bit identical, even after hours of active runtime. No 
visible blocking transaction, no lock conflict, no error log entry explains 
this.

--- Environment ---

- MariaDB 10.11.18-MariaDB-deb12-log (also reproduced on 10.11.15; upgrading 
did not help)
- Galera 26.4.27 (rf032a460)
- Debian 12
- innodb_undo_tablespaces=0 (undo lives in the shared system tablespace, 
ibdata1)
- innodb_buffer_pool_size=49152M

--- Key evidence ---

1) Purge boundary frozen across 3 full restarts + crash recovery over ~5 hours:

Snapshot 1:
Trx id counter 5466324699
Purge done for trx's n:o < 5463787581
History list length 1096233

Snapshot 2 (~5h later, 3 restarts incl. kill -9 + crash recovery):
Trx id counter 5466324749
Purge done for trx's n:o < 5463787581   <- identical
History list length 1096250

2) Backlog grows unbounded under continued production activity (after a ~1-20GB 
SQL dump import, 291 tables, thousands of new transactions):

Trx id counter 5466326793   (+2094 new transactions)
Purge done for trx's n:o < 5463787581   <- still identical, nothing purged
History list length 1097123

3) The frozen state is physically persisted: a second cluster node received the 
data via Galera SST (mariabackup, physical file copy) and shows the exact same 
frozen purge boundary post-transfer - pointing to a persistent issue in the 
undo tablespace metadata rather than a transient in-memory state of one process.

4) Ruled out: open/blocking transactions (INNODB_TRX empty), prepared XA 
transactions (XA RECOVER empty), innodb_force_recovery=0, innodb_read_only=OFF, 
storage/filesystem errors (dmesg/journalctl clean, all error status counters at 
0), purge thread/batch tuning (innodb_purge_threads=8, innodb_max_purge_lag=0, 
innodb_purge_batch_size=1000 - no effect). A forced innodb_fast_shutdown=0 
shutdown ran for several hours with continuous CPU activity but no visible 
reduction in History list length before being aborted.

5) A related MDL side-effect: a background thread identified as 
thread/innodb/thread_pool_thread (performance_schema.threads, TYPE: BACKGROUND) 
held a permanent SHARED MDL on a system table, blocking a DROP TABLE 
indefinitely with no timeout - consistent with the purge coordinator holding 
locks while not making progress.

We have full SHOW ENGINE INNODB STATUS snapshots, gdb thread dumps (partially 
symbolized, we ran into a build-ID mismatch installing dbgsym after the fact), 
and error logs available and are happy to share the complete report or run 
additional diagnostics on our reproduction environment (we still have it 
running on a clone).

Thanks in advance for any pointers,
Domenik Falk
_______________________________________________
discuss mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to