electrs: incompatibility with the new version of rocksdb

Somwhere between 6.23.3 and 6.25.3 the API or rocksdb has changed:

   Compiling electrs-rocksdb v0.15.0-e2
error[E0308]: mismatched types
   --> /private/tmp/nix-build-electrs-0.9.2.drv-0/electrs-0.9.2-vendor.tar.gz/electrs-rocksdb/src/db_options.rs:477:56
    |
477 |                 ffi::rocksdb_filterpolicy_create_bloom(bits_per_key)
    |                                                        ^^^^^^^^^^^^ expected `f64`, found `i32`
    |
help: you can convert an `i32` to an `f64`, producing the floating point representation of the integer
    |
477 |                 ffi::rocksdb_filterpolicy_create_bloom(bits_per_key.into())
    |                                                        ^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> /private/tmp/nix-build-electrs-0.9.2.drv-0/electrs-0.9.2-vendor.tar.gz/electrs-rocksdb/src/db_options.rs:479:61
    |
479 |                 ffi::rocksdb_filterpolicy_create_bloom_full(bits_per_key)
    |                                                             ^^^^^^^^^^^^ expected `f64`, found `i32`
    |
help: you can convert an `i32` to an `f64`, producing the floating point representation of the integer
    |
479 |                 ffi::rocksdb_filterpolicy_create_bloom_full(bits_per_key.into())
    |                                                             ^^^^^^^^^^^^^^^^^^^

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Comments: 17 (10 by maintainers)

Most upvoted comments

Yes, I’m only changing dependencies to use rust-rocksdb. I’ve updated the patch taking into account your remarks.

@zciendor 32 bit ARM has multiple issues, I strongly recommend migrating to 64 bit. I also tried to compile rocksdb package for it but failed.

Many thanks for reporting this issue!

Due to multiple compatibility issues (mostly with ARM platforms - e.g. #403), we have forked the rust-rocksdb crate (https://crates.io/crates/electrs-rocksdb), in order to “pin” the C++ RocksDB to 6.11.4 release (#473) to allow dynamic linking on Debian 11.

So indeed, it probably won’t work with the latest RocksDB releases 😦