App::start() opens the redb store before connecting to the EL. During the EL
retry window (up to 30 s) no SIGTERM handler is installed yet, so a
systemctl stop there kills the process with the store open and without the
quick-repair commit redb writes on Drop. The next start runs a full repair:
1h04 on a 103 GB testnet store. Seen on arc-node v0.8.0, testnet, follow mode.
Reproduce (EL stopped):
systemctl start arc-malachite, wait for the Failed to connect to Ethereum node retries.
systemctl stop arc-malachite during the retries.
- Start the EL, then
systemctl start arc-malachite: logs
Database repair in progress: 0.00% instead of Database opened.
An orderly startup failure (execution engine unreachable ... Exiting...) does
not trigger it, since the store is dropped cleanly; only the unhandled signal
does. Opening the store after connect_and_resolve_chain_identity (first use is
State::builder) fixes it; verified on testnet. PR to follow.
App::start()opens the redb store before connecting to the EL. During the ELretry window (up to 30 s) no SIGTERM handler is installed yet, so a
systemctl stopthere kills the process with the store open and without thequick-repair commit redb writes on
Drop. The next start runs a full repair:1h04 on a 103 GB testnet store. Seen on arc-node v0.8.0, testnet, follow mode.
Reproduce (EL stopped):
systemctl start arc-malachite, wait for theFailed to connect to Ethereum noderetries.systemctl stop arc-malachiteduring the retries.systemctl start arc-malachite: logsDatabase repair in progress: 0.00%instead ofDatabase opened.An orderly startup failure (
execution engine unreachable ... Exiting...) doesnot trigger it, since the store is dropped cleanly; only the unhandled signal
does. Opening the store after
connect_and_resolve_chain_identity(first use isState::builder) fixes it; verified on testnet. PR to follow.