[CHIA-4357] [Bug] chia db validate does not detect malformed database
Author: jfikarCreated Jun 4, 2022Updated Aug 19, 2026
LabelsbugBlockchain DB
What happened?
I was checking db v2 after restart, if it is valid. chia db validate shows everything is ok:
$ chia db validate
opening file for reading: /home/pi/.chia/mainnet/db/blockchain_v2_mainnet.sqlite
peak hash: ace730e133cf1144a02deb435457030e30ed715733ec76838f6b05058a3f7d73
peak height: 2070652
traversing the full chain
0 orphaned blocks: 67
67 orphaned blocks
DATABASE IS VALID: /home/pi/.chia/mainnet/db/blockchain_v2_mainnet.sqlitebut longer test sqlite3 /home/pi/.chia/mainnet/db/blockchain_v2_mainnet.sqlite "PRAGMA integrity_check" shows errors:
$ sqlite3 ~/.chia/mainnet/db/blockchain_v2_mainnet.sqlite "PRAGMA integrity_check"
*** in database main ***
Page 19730123: btreeInitPage() returns error code 11
Page 19730101: btreeInitPage() returns error code 11
Page 19730074: btreeInitPage() returns error code 11
Page 19730180: btreeInitPage() returns error code 11
Page 19730088: btreeInitPage() returns error code 11
Page 19730127: btreeInitPage() returns error code 11
Page 19730181: btreeInitPage() returns error code 11
Page 19730182: btreeInitPage() returns error code 11
Page 19730087: btreeInitPage() returns error code 11
Page 19730082: btreeInitPage() returns error code 11
Page 19730162: btreeInitPage() returns error code 11
Page 19730120: btreeInitPage() returns error code 11
Page 19730068: btreeInitPage() returns error code 11
...When I try to start chia start farmer, I get also error:
Traceback (most recent call last):
File "/home/pi/chia-blockchain/venv/bin/chia_full_node", line 33, in <module>
sys.exit(load_entry_point('chia-blockchain', 'console_scripts', 'chia_full_node')())
File "/home/pi/chia-blockchain/chia/server/start_full_node.py", line 60, in main
return run_service(**kwargs)
File "/home/pi/chia-blockchain/chia/server/start_service.py", line 289, in run_service
return asyncio.run(async_run_service(*args, **kwargs))
File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/home/pi/chia-blockchain/chia/server/start_service.py", line 283, in async_run_service
return await service.run()
File "/home/pi/chia-blockchain/chia/server/start_service.py", line 193, in run
await self.start()
File "/home/pi/chia-blockchain/chia/server/start_service.py", line 154, in start
await self._node._start(**kwargs)
File "/home/pi/chia-blockchain/chia/full_node/full_node.py", line 231, in _start
self.blockchain = await Blockchain.create(
File "/home/pi/chia-blockchain/chia/consensus/blockchain.py", line 149, in create
await self._load_chain_from_store(blockchain_dir)
File "/home/pi/chia-blockchain/chia/consensus/blockchain.py", line 165, in _load_chain_from_store
block_records, peak = await self.block_store.get_block_records_close_to_peak(self.constants.BLOCKS_CACHE_SIZE)
File "/home/pi/chia-blockchain/chia/full_node/block_store.py", line 535, in get_block_records_close_to_peak
for row in await cursor.fetchall():
File "/home/pi/chia-blockchain/venv/lib/python3.9/site-packages/aiosqlite/cursor.py", line 65, in fetchall
return await self._execute(self._cursor.fetchall)
File "/home/pi/chia-blockchain/venv/lib/python3.9/site-packages/aiosqlite/cursor.py", line 31, in _execute
return await self._conn._execute(fn, *args, **kwargs)
File "/home/pi/chia-blockchain/venv/lib/python3.9/site-packages/aiosqlite/core.py", line 129, in _execute
return await future
File "/home/pi/chia-blockchain/venv/lib/python3.9/site-packages/aiosqlite/core.py", line 102, in run
result = function()
sqlite3.DatabaseError: database disk image is malformedHow come that chia db validate does not detect the problem?
Version
1.3.5
What platform are you using?
Linux
What ui mode are you using?
CLI
Relevant log output
No response
Source: Chia-Network/chia-blockchain