Skip to content

[Bug] Corruption: unknown checksum type 4 #171

@mbspng

Description

@mbspng

Describe the bug

Publishing data to RocksDB results in Corruption: unknown checksum type 4 when querying. I found this thread, which might be related: https://bugzilla.redhat.com/show_bug.cgi?id=2193399

To reproduce

Script to put data into DB

session = zenoh.open()
pub = session.declare_publisher("data/store")
pub.put("1")  # putting byte string results in same error.

Script to query database

import argparse
from pathlib import Path

import rocksdb


def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("rocksdb_directory", type=Path)
    return parser.parse_args()


def main(args):
    column_families = {
        b"default": rocksdb.ColumnFamilyOptions(),
        b"data_info": rocksdb.ColumnFamilyOptions(),
    }

    options = rocksdb.Options(create_if_missing=False)
    db = rocksdb.DB(
        str(args.rocksdb_directory),
        options,
        column_families=column_families,
        read_only=True,
    )


if __name__ == "__main__":
    main(parse_args())

Error

Traceback (most recent call last):
  File "...query_rocksdb.py", line 42, in <module>
    main(parse_args())
  File ".../query_rocksdb.py", line 22, in main
    db = rocksdb.DB(
  File "rocksdb/_rocksdb.pyx", line 1636, in rocksdb._rocksdb.DB.__cinit__
  File "rocksdb/_rocksdb.pyx", line 76, in rocksdb._rocksdb.check_status
rocksdb.errors.Corruption: b'Corruption: unknown checksum type 4 in zenoh-rocksdb/example/000028.sst offset 25692519 size 35'

System info

Ubuntu 22.04

-> % dpkg -l G rocksdb
ii  librocksdb-dev                                6.11.4-3                                    amd64        persistent Key-Value Store for Flash and RAM Storage (development)
ii  librocksdb6.11                                6.11.4-3                                    amd64        persistent Key-Value Store for Flash and RAM Storage
ii  zenoh-backend-rocksdb                         0.11.0-stable                               amd64        Backend for Zenoh using RocksDB

-> % dpkg -l G zenoh  
ii  zenoh                                         0.11.0-stable                               amd64        Zenoh: Zero Overhead Pub/sub, Store/Query and Compute.
ii  zenoh-backend-rocksdb                         0.11.0-stable                               amd64        Backend for Zenoh using RocksDB
ii  zenoh-plugin-rest                             0.11.0-stable                               amd64        The zenoh REST plugin
ii  zenoh-plugin-storage-manager                  0.11.0-stable                               amd64        The zenoh storages plugin.
ii  zenohd                                        0.11.0-stable                               amd64        Zenoh: Zero Overhead Pub/sub, Store/Query and Compute.

-> % pip list G rocks 
python-rocksdb        0.7.0

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions