From 43d37d73f231e373a3a6f276ba1e28a697d76f13 Mon Sep 17 00:00:00 2001 From: Ludo Galabru Date: Fri, 7 Apr 2023 18:42:59 -0400 Subject: [PATCH] fix: safer db open, dockerfile --- components/chainhook-cli/src/cli/mod.rs | 12 +++++++++--- .../chainhook-event-observer/src/hord/db/mod.rs | 5 +++-- dockerfiles/components/chainhook-node.dockerfile | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/components/chainhook-cli/src/cli/mod.rs b/components/chainhook-cli/src/cli/mod.rs index ddf4e98..f770358 100644 --- a/components/chainhook-cli/src/cli/mod.rs +++ b/components/chainhook-cli/src/cli/mod.rs @@ -664,9 +664,15 @@ pub fn should_sync_hord_db(config: &Config, ctx: &Context) -> Result find_last_block_inserted(&blocks_db) as u64, + Err(err) => { + warn!( + ctx.expect_logger(), + "{}", err + ); + 0 + } }; if start_block == 0 { diff --git a/components/chainhook-event-observer/src/hord/db/mod.rs b/components/chainhook-event-observer/src/hord/db/mod.rs index 92bc926..b56b588 100644 --- a/components/chainhook-event-observer/src/hord/db/mod.rs +++ b/components/chainhook-event-observer/src/hord/db/mod.rs @@ -344,9 +344,10 @@ pub fn open_readonly_hord_db_conn_rocks_db( ) -> Result { let path = get_default_hord_db_file_path_rocks_db(&base_dir); let mut opts = rocksdb::Options::default(); + opts.create_if_missing(true); opts.set_compression_type(rocksdb::DBCompressionType::Lz4); opts.set_max_open_files(1000); - let db = DB::open_for_read_only(&opts, path, false).unwrap(); + let db = DB::open_for_read_only(&opts, path, false).map_err(|e| format!("unable to open blocks_db: {}", e.to_string()))?; Ok(db) } @@ -359,7 +360,7 @@ pub fn open_readwrite_hord_db_conn_rocks_db( opts.create_if_missing(true); opts.set_compression_type(rocksdb::DBCompressionType::Lz4); opts.set_max_open_files(1000); - let db = DB::open(&opts, path).unwrap(); + let db = DB::open(&opts, path).map_err(|e| format!("unable to open blocks_db: {}", e.to_string()))?; Ok(db) } diff --git a/dockerfiles/components/chainhook-node.dockerfile b/dockerfiles/components/chainhook-node.dockerfile index a29936d..198c72f 100644 --- a/dockerfiles/components/chainhook-node.dockerfile +++ b/dockerfiles/components/chainhook-node.dockerfile @@ -2,7 +2,7 @@ FROM rust:bullseye as build WORKDIR /src -RUN apt update && apt install -y ca-certificates pkg-config libssl-dev +RUN apt update && apt install -y ca-certificates pkg-config libssl-dev libclang-11-dev RUN rustup update 1.67.0 && rustup default 1.67.0