From 3d73937dfb76e451fdf44192a2b7c748e7e2974d Mon Sep 17 00:00:00 2001 From: 5chdn <5chdn@users.noreply.github.com> Date: Fri, 30 Nov 2018 11:59:52 +0100 Subject: [PATCH 1/4] version: bump beta to 2.2.3 --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- util/version/Cargo.toml | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e5e6c31b9d1..41fe0600346 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2058,7 +2058,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2162,7 +2162,7 @@ version = "1.12.0" dependencies = [ "jni 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "panic_hook 0.1.0", - "parity-ethereum 2.2.2", + "parity-ethereum 2.2.3", ] [[package]] @@ -2178,7 +2178,7 @@ dependencies = [ [[package]] name = "parity-ethereum" -version = "2.2.2" +version = "2.2.3" dependencies = [ "ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2227,7 +2227,7 @@ dependencies = [ "parity-rpc-client 1.4.0", "parity-runtime 0.1.0", "parity-updater 1.12.0", - "parity-version 2.2.2", + "parity-version 2.2.3", "parity-whisper 0.1.0", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2382,7 +2382,7 @@ dependencies = [ "parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-runtime 0.1.0", "parity-updater 1.12.0", - "parity-version 2.2.2", + "parity-version 2.2.3", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "patricia-trie 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2479,7 +2479,7 @@ dependencies = [ "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-hash-fetch 1.12.0", "parity-path 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-version 2.2.2", + "parity-version 2.2.3", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2489,7 +2489,7 @@ dependencies = [ [[package]] name = "parity-version" -version = "2.2.2" +version = "2.2.3" dependencies = [ "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rlp 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 3af2dbab831..0ee3527bdb5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ description = "Parity Ethereum client" name = "parity-ethereum" # NOTE Make sure to update util/version/Cargo.toml as well -version = "2.2.2" +version = "2.2.3" license = "GPL-3.0" authors = ["Parity Technologies "] diff --git a/util/version/Cargo.toml b/util/version/Cargo.toml index f46a0d54d83..e4a1fecb9d0 100644 --- a/util/version/Cargo.toml +++ b/util/version/Cargo.toml @@ -3,7 +3,7 @@ [package] name = "parity-version" # NOTE: this value is used for Parity Ethereum version string (via env CARGO_PKG_VERSION) -version = "2.2.2" +version = "2.2.3" authors = ["Parity Technologies "] build = "build.rs" From ac9fcb421f3dc9022fe16fa5884518560cda2d27 Mon Sep 17 00:00:00 2001 From: Nicolas Gotchac Date: Fri, 30 Nov 2018 05:08:20 +0100 Subject: [PATCH 2/4] Fix Bloom migration (#9992) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix wrong block number in blooms migration * Fix wrong `const` type (usize -> u64) 😬 --- parity/db/rocksdb/blooms.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/parity/db/rocksdb/blooms.rs b/parity/db/rocksdb/blooms.rs index eba8eb896f7..5c71fe95667 100644 --- a/parity/db/rocksdb/blooms.rs +++ b/parity/db/rocksdb/blooms.rs @@ -23,6 +23,8 @@ use rlp; use super::kvdb_rocksdb::DatabaseConfig; use super::open_database; +const LOG_BLOOMS_ELEMENTS_PER_INDEX: u64 = 16; + pub fn migrate_blooms>(path: P, config: &DatabaseConfig) -> Result<(), Error> { // init let db = open_database(&path.as_ref().to_string_lossy(), config)?; @@ -41,11 +43,12 @@ pub fn migrate_blooms>(path: P, config: &DatabaseConfig) -> Resul key[0] == 3u8 && key[1] == 0u8 }) .map(|(key, group)| { - let number = + let index = (key[2] as u64) << 24 | (key[3] as u64) << 16 | (key[4] as u64) << 8 | (key[5] as u64); + let number = index * LOG_BLOOMS_ELEMENTS_PER_INDEX; let blooms = rlp::decode_list::(&group); (number, blooms) @@ -66,11 +69,12 @@ pub fn migrate_blooms>(path: P, config: &DatabaseConfig) -> Resul key[0] == 1u8 && key[1] == 0u8 }) .map(|(key, group)| { - let number = + let index = (key[2] as u64) | (key[3] as u64) << 8 | (key[4] as u64) << 16 | (key[5] as u64) << 24; + let number = index * LOG_BLOOMS_ELEMENTS_PER_INDEX; let blooms = rlp::decode_list::(&group); (number, blooms) From 815037b0dfa6c92313928d68daa8fee43df28d6e Mon Sep 17 00:00:00 2001 From: Andronik Ordian Date: Fri, 30 Nov 2018 14:39:30 +0300 Subject: [PATCH 3/4] Fix daemonize (#10000) * Revert "prevent silent errors in daemon mode, closes #9367 (#9946)" This reverts commit 52d5278a62308a44c3fcb7793c011bc907668f59. * deps(daemonize): switch back to crates.io --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- parity/run.rs | 12 ++++++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 41fe0600346..83122dd7734 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -377,8 +377,8 @@ dependencies = [ [[package]] name = "daemonize" -version = "0.2.3" -source = "git+https://github.com/paritytech/daemonize#df00295f03450326613f2d616059fd44434a0d74" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2185,7 +2185,7 @@ dependencies = [ "blooms-db 0.1.0", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "ctrlc 1.1.1 (git+https://github.com/paritytech/rust-ctrlc.git)", - "daemonize 0.2.3 (git+https://github.com/paritytech/daemonize)", + "daemonize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "dir 0.1.2", "docopt 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4078,7 +4078,7 @@ dependencies = [ "checksum crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c240f247c278fa08a6d4820a6a222bfc6e0d999e51ba67be94f44c905b2161f2" "checksum ct-logs 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "95a4bf5107667e12bf6ce31a3a5066d67acc88942b6742117a41198734aaccaa" "checksum ctrlc 1.1.1 (git+https://github.com/paritytech/rust-ctrlc.git)" = "" -"checksum daemonize 0.2.3 (git+https://github.com/paritytech/daemonize)" = "" +"checksum daemonize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4093d27eb267d617f03c2ee25d4c3ca525b89a76154001954a11984508ffbde5" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" "checksum docopt 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d8acd393692c503b168471874953a2531df0e9ab77d0b6bbc582395743300a4a" diff --git a/Cargo.toml b/Cargo.toml index 0ee3527bdb5..02651947c09 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -83,7 +83,7 @@ fake-fetch = { path = "util/fake-fetch" } winapi = { version = "0.3.4", features = ["winsock2", "winuser", "shellapi"] } [target.'cfg(not(windows))'.dependencies] -daemonize = { git = "https://github.com/paritytech/daemonize" } +daemonize = "0.3" [features] miner-debug = ["ethcore/miner-debug"] diff --git a/parity/run.rs b/parity/run.rs index 14fd58dd107..d6945931f40 100644 --- a/parity/run.rs +++ b/parity/run.rs @@ -543,6 +543,12 @@ fn execute_impl(cmd: RunCmd, logger: Arc, on_client_rq: // set network path. net_conf.net_config_path = Some(db_dirs.network_path().to_string_lossy().into_owned()); + // run in daemon mode + if let Some(pid_file) = cmd.daemon { + info!("Running as a daemon process!"); + daemonize(pid_file)?; + } + let restoration_db_handler = db::restoration_db_handler(&client_path, &client_config); let client_db = restoration_db_handler.open(&client_path) .map_err(|e| format!("Failed to open database {:?}", e))?; @@ -807,12 +813,6 @@ fn execute_impl(cmd: RunCmd, logger: Arc, on_client_rq: client.set_exit_handler(on_client_rq); updater.set_exit_handler(on_updater_rq); - // run in daemon mode - if let Some(pid_file) = cmd.daemon { - info!("Running as a daemon process!"); - daemonize(pid_file)?; - } - Ok(RunningClient { inner: RunningClientInner::Full { rpc: rpc_direct, From e5e2808ea9244e3be3b7004f9e94c990ebfa8478 Mon Sep 17 00:00:00 2001 From: Andronik Ordian Date: Fri, 30 Nov 2018 17:22:41 +0300 Subject: [PATCH 4/4] move daemonize before creating account provider (#10003) * move daemonize before creating account provider * daemonize: add a future-proofing comment --- parity/run.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/parity/run.rs b/parity/run.rs index d6945931f40..5221a281120 100644 --- a/parity/run.rs +++ b/parity/run.rs @@ -463,6 +463,14 @@ fn execute_impl(cmd: RunCmd, logger: Arc, on_client_rq: let passwords = passwords_from_files(&cmd.acc_conf.password_files)?; + // Run in daemon mode. + // Note, that it should be called before we leave any file descriptor open, + // since `daemonize` will close them. + if let Some(pid_file) = cmd.daemon { + info!("Running as a daemon process!"); + daemonize(pid_file)?; + } + // prepare account provider let account_provider = Arc::new(prepare_account_provider(&cmd.spec, &cmd.dirs, &spec.data_dir, cmd.acc_conf, &passwords)?); @@ -543,12 +551,6 @@ fn execute_impl(cmd: RunCmd, logger: Arc, on_client_rq: // set network path. net_conf.net_config_path = Some(db_dirs.network_path().to_string_lossy().into_owned()); - // run in daemon mode - if let Some(pid_file) = cmd.daemon { - info!("Running as a daemon process!"); - daemonize(pid_file)?; - } - let restoration_db_handler = db::restoration_db_handler(&client_path, &client_config); let client_db = restoration_db_handler.open(&client_path) .map_err(|e| format!("Failed to open database {:?}", e))?;