Skip to content

Bitcoin core start-up issue with undo data #5156

@laanwj

Description

@laanwj

Today, running master, letting an instance that hasn't run for a while catch up with the chain, I suddenly have problems with corrupted undo data due to "end of file" errors.

2014-10-28 15:49:13 Verifying last 288 blocks at level 3
2014-10-28 15:49:23 ERROR: ReadFromDisk : Deserialize or I/O error - CAutoFile::read : end of file
2014-10-28 15:49:23 ERROR: VerifyDB() : *** found bad undo data at 324562, hash=0000000000000000092e4ee01f6c144f4a97bf1307e1c5e7bd49f49328c28f35

When starting with checklevel=0, the error is bypassed, however the next start of the program it fails in another place:

2014-10-28 15:53:06 Verifying last 288 blocks at level 3
2014-10-28 15:53:09 ERROR: ReadFromDisk : Deserialize or I/O error - CAutoFile::read : end of file
2014-10-28 15:53:09 ERROR: VerifyDB() : *** found bad undo data at 324695, hash=0000000000000000066a32130499df7e116f6467f418da77673748b0407bc30b

I again start with checklevel=0, and I get a whole slew of "UpdateTips" in AppInit2, after loading the wallet but before the start of the RPC threads and such.

2014-10-28 15:53:17 LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=85, size=26356604, heights=324524...325547, time=2014-10-09...2014-10-16)
2014-10-28 15:53:17 Checking all blk files are present...
2014-10-28 15:53:17 LoadBlockIndexDB(): transaction index disabled
2014-10-28 15:53:18 LoadBlockIndexDB(): hashBestChain=000000000000000009e2bf4621d87d730adf6a975688f854ba39d60cdd763271 height=324859 date=2014-10-11 14:31:06 progress=0.949969
...
2014-10-28 15:53:19 UpdateTip: new best=0000000000000000185b8f003088ef1eff57ae472055a72c5d5ef07a3ba6c477  height=324860  log2_work=81.048227  tx=48668445  date=2014-10-11 14:38:47 progress=0.949985  cache=1168
...
2014-10-28 15:54:52 UpdateTip: new best=00000000000000000db8f35a7986efdf8bc254660768b92105a717d5210a5594  height=325079  log2_work=81.067102  tx=48770279  date=2014-10-13 03:43:47 progress=0.9
54534  cache=38094
2014-10-28 15:54:52 mapBlockIndex.size() = 327377

So I wonder, is my undo data corrupted (and should I just -reindex), or could something else be going on that is worth debugging further, thinking it should have undo data for a block that hasn't been processed yet?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions