Skip to content

genesis file may go over the recommended maximum value size #8416

@tomtau

Description

@tomtau

Tendermint version (use tendermint version or git rev-parse --verify HEAD if installed from source):
v0.34.14

ABCI app (name for built-in, URL for self-written if it's publicly available):
https://github.com/crypto-org-chain/cronos

Environment:

What happened:
The app crashes during DB compactions every two days, reporting a corrupted storage.

What you expected to happen:
It should not crash. The written keys and values should be within the maximum recommended limits.

Have you tried the latest version: no

How to reproduce it (as minimally and precisely as possible):

Create a genesis file which is over the maximum recommended limit in a given DB backend (e.g. 3GB in RocksDB) and let it run for a few days.

Logs (paste a small part showing an error (< 10 lines) or link a pastebin, gist, etc. containing more of the log file):

Apr 21 06:57:27 ip-... ...[31651]: 6:57AM INF received complete proposal block hash=8C44DC3C33358D58C2A408E5D1F36E7D3BB46C0B8CA0B8D3833A5302249A2490 height=30264 module=consensus server=node
Apr 21 06:57:28 ip-... ...[31651]: 6:57AM INF finalizing commit of block hash=8C44DC3C33358D58C2A408E5D1F36E7D3BB46C0B8CA0B8D3833A5302249A2490 height=30264 module=consensus num_txs=0 root=64672456A0AA4AE96381AF50560C382224862DD3D509AE21C4A22414A579D049 server=node
Apr 21 06:57:28 ip-... ...[31651]: 6:57AM INF executed block height=30264 module=state num_invalid_txs=0 num_valid_txs=0 server=node
Apr 21 06:57:28 ip-... ...[31651]: 6:57AM ERR failed to apply block err="Corruption: block checksum mismatch: stored = 1383945041, computed = 0, type = 1  in /.../data/state.db/000010.sst offset 88777080 size 3214387372" height=30264 module=consensus server=node

Config (you can paste only the changes you've made):
N/A

node command runtime flags:
N/A

Please provide the output from the http://<ip>:<port>/dump_consensus_state RPC endpoint for consensus bugs
N/A

Anything else we need to know:

func saveGenesisDoc(db dbm.DB, genDoc *types.GenesisDoc) error {

https://github.com/facebook/rocksdb/wiki/RocksDB-FAQ

Q: What’s the maximum key and value sizes supported?
A: In general, RocksDB is not designed for large keys. The maximum recommended sizes for key and value are 8MB and 3GB respectively.

Metadata

Metadata

Assignees

No one assigned

    Labels

    stalefor use by stalebot

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions