Issues with sync of Bitcoin node (ERROR: UndoReadFromDisk: Deserialize or I/O error - ReadVarInt(): size too large: iostream error)

Hi guys,

I’m running RBPi 4 Model B - 4GB RAM with Kingston XS2000 Portable SSD 1TB and I do really have big issues with and I’m unable to finish sync. It’s always ends with somehow corrupted data and I was already kill one of SD card, when I found out, it’s actually do have issues with reading.

At first, I thought it was somehow just bad even before but not really noticed, however I’ve hit same shit again with new as well.

It’s always ends with corrupted data, last one error is this one:

bitcoind_1     | 2023-07-16T05:57:55Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
bitcoind_1     | 2023-07-16T05:57:55Z Opening LevelDB in /data/.bitcoin/chainstate
bitcoind_1     | 2023-07-16T05:57:56Z Opened LevelDB successfully
bitcoind_1     | 2023-07-16T05:57:56Z Using obfuscation key for /data/.bitcoin/chainstate: 50df6fdb5ab8e447
bitcoind_1     | 2023-07-16T05:57:56Z Loaded best chain: hashBestChain=000000000000000000023276170e591a0eed58a2a572a29d673b5d7cc7ac93eb height=792973 date=2023-06-05T14:21:57Z progress=0.985022
bitcoind_1     | 2023-07-16T05:57:56Z [snapshot] allocating all cache to the IBD chainstate
bitcoind_1     | 2023-07-16T05:57:56Z Opening LevelDB in /data/.bitcoin/chainstate
bitcoind_1     | 2023-07-16T05:57:57Z Opened LevelDB successfully
bitcoind_1     | 2023-07-16T05:57:57Z Using obfuscation key for /data/.bitcoin/chainstate: 50df6fdb5ab8e447
bitcoind_1     | 2023-07-16T05:57:57Z [Chainstate [ibd] @ height 792973 (000000000000000000023276170e591a0eed58a2a572a29d673b5d7cc7ac93eb)] resized coinsdb cache to 8.0 MiB
bitcoind_1     | 2023-07-16T05:57:57Z [Chainstate [ibd] @ height 792973 (000000000000000000023276170e591a0eed58a2a572a29d673b5d7cc7ac93eb)] resized coinstip cache to 720.9 MiB
bitcoind_1     | 2023-07-16T05:57:57Z init message: Verifying blocks…
bitcoind_1     | 2023-07-16T05:57:57Z Verifying last 6 blocks at level 3
bitcoind_1     | 2023-07-16T05:57:57Z Verification progress: 0%
bitcoind_1     | 2023-07-16T05:58:11Z Verification progress: 16%
bitcoind_1     | 2023-07-16T05:58:21Z Verification progress: 33%
bitcoind_1     | 2023-07-16T05:58:33Z Verification progress: 50%
bitcoind_1     | 2023-07-16T05:58:33Z ERROR: UndoReadFromDisk: Deserialize or I/O error - ReadVarInt(): size too large: iostream error
bitcoind_1     | 2023-07-16T05:58:33Z Verification error: found bad undo data at 792970, hash=000000000000000000046f46b035fec3cd294c2d278f0539839de779e1f80034
bitcoind_1     | 2023-07-16T05:58:33Z : Corrupted block database detected.
bitcoind_1     | Please restart with -reindex or -reindex-chainstate to recover.
bitcoind_1     | 2023-07-16T05:58:33Z Aborted block database rebuild. Exiting.
bitcoind_1     | 2023-07-16T05:58:33Z Shutdown: In progress...
bitcoind_1     | : Corrupted block database detected.
bitcoind_1     | Please restart with -reindex or -reindex-chainstate to recover.
bitcoind_1     | 2023-07-16T05:58:33Z scheduler thread exit
bitcoind_1     | 2023-07-16T05:58:35Z Shutdown: done

it’s just always similar scneario - corrupted data somehow on different places. Ten I do run --reindex and after a week of sync same shit hit the fan. I’ve already spent more then 6 weeks trying to sync and it just failed every time. I thought I may get bad SSD, so I’ve tried to run badblocks and fsck and looks that SSD passed fine, where SD card not. So it looks, that SSD works just fine, SD was replaced by one, that passed too, but still, unable to do sync. It’s really annoying.

As it’s USB drive, it’s quite problem to use S.M.A.R.T diagnose as it’s not well supported USB drive, just using native BUS for disk either IDE, SATA seems and I was not able to get any SMART stats.

Is there some way of fixing chain without complete reindex or figure out, where the hell problem could be?

1 Like