[INFO] cloning repository https://github.com/pieterjandubois/FundingSpreadArbitrageV2 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pieterjandubois/FundingSpreadArbitrageV2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpieterjandubois%2FFundingSpreadArbitrageV2", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpieterjandubois%2FFundingSpreadArbitrageV2'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4054f6fcba5dd195658cfd8a832183658917c34c [INFO] checking pieterjandubois/FundingSpreadArbitrageV2/4054f6fcba5dd195658cfd8a832183658917c34c against master#2972b5e59f1c5529b6ba770437812fd83ab4ebd4 for pr-154781 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpieterjandubois%2FFundingSpreadArbitrageV2" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/pieterjandubois/FundingSpreadArbitrageV2 [INFO] finished tweaking git repo https://github.com/pieterjandubois/FundingSpreadArbitrageV2 [INFO] tweaked toml for git repo https://github.com/pieterjandubois/FundingSpreadArbitrageV2 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/pieterjandubois/FundingSpreadArbitrageV2 on toolchain 2972b5e59f1c5529b6ba770437812fd83ab4ebd4 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2972b5e59f1c5529b6ba770437812fd83ab4ebd4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/pieterjandubois/FundingSpreadArbitrageV2 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2972b5e59f1c5529b6ba770437812fd83ab4ebd4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded uuid v1.20.0 [INFO] [stderr] Downloaded cc v1.2.54 [INFO] [stderr] Downloaded core_affinity v0.8.3 [INFO] [stderr] Downloaded value-trait v0.8.1 [INFO] [stderr] Downloaded zerocopy-derive v0.8.34 [INFO] [stderr] Downloaded simd-json v0.13.11 [INFO] [stderr] Downloaded redis v0.25.4 [INFO] [stderr] Downloaded zerocopy v0.8.34 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+2972b5e59f1c5529b6ba770437812fd83ab4ebd4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2a11b358bb687d6adcc004a973cffd0f6e4d8f2c3ec60aa2a79e22ed0a6373fb [INFO] running `Command { std: "docker" "start" "-a" "2a11b358bb687d6adcc004a973cffd0f6e4d8f2c3ec60aa2a79e22ed0a6373fb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2a11b358bb687d6adcc004a973cffd0f6e4d8f2c3ec60aa2a79e22ed0a6373fb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2a11b358bb687d6adcc004a973cffd0f6e4d8f2c3ec60aa2a79e22ed0a6373fb", kill_on_drop: false }` [INFO] [stdout] 2a11b358bb687d6adcc004a973cffd0f6e4d8f2c3ec60aa2a79e22ed0a6373fb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+2972b5e59f1c5529b6ba770437812fd83ab4ebd4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a283a9700a229d2376a031d25bfabb9fb3b89a412580c1d00830a8faae390eee [INFO] running `Command { std: "docker" "start" "-a" "a283a9700a229d2376a031d25bfabb9fb3b89a412580c1d00830a8faae390eee", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Compiling find-msvc-tools v0.1.8 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking bytes v1.11.0 [INFO] [stderr] Compiling zerocopy v0.8.34 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking socket2 v0.6.2 [INFO] [stderr] Compiling cc v1.2.54 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking ryu v1.0.22 [INFO] [stderr] Checking rustls-pki-types v1.14.0 [INFO] [stderr] Checking lexical-util v1.0.7 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling rustls v0.22.4 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling zmij v1.0.17 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking signal-hook-mio v0.2.5 [INFO] [stderr] Checking lexical-parse-integer v1.0.6 [INFO] [stderr] Checking lexical-write-integer v1.0.6 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Checking indexmap v2.13.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Checking lexical-parse-float v1.0.6 [INFO] [stderr] Checking lexical-write-float v1.0.6 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking float-cmp v0.9.0 [INFO] [stderr] Checking webpki-roots v1.0.5 [INFO] [stderr] Checking castaway v0.2.4 [INFO] [stderr] Checking http v1.4.0 [INFO] [stderr] Checking data-encoding v2.10.0 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking compact_str v0.7.1 [INFO] [stderr] Checking rustls-pemfile v1.0.4 [INFO] [stderr] Checking lexical-core v1.0.6 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking sync_wrapper v0.1.2 [INFO] [stderr] Checking simdutf8 v0.1.5 [INFO] [stderr] Checking chrono v0.4.43 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking crossbeam-queue v0.3.12 [INFO] [stderr] Checking core_affinity v0.8.3 [INFO] [stderr] Checking crossterm v0.28.1 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking uuid v1.20.0 [INFO] [stderr] Checking dotenv v0.15.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Checking wait-timeout v0.2.1 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking rand_xorshift v0.4.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking rustls-webpki v0.102.8 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Compiling stability v0.2.1 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking tempfile v3.24.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ratatui v0.27.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking rusty-fork v0.3.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking proptest v1.9.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking halfbrown v0.2.5 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking value-trait v0.8.1 [INFO] [stderr] Checking tungstenite v0.21.0 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking tokio-rustls v0.25.0 [INFO] [stderr] Checking simd-json v0.13.11 [INFO] [stderr] Checking tokio-tungstenite v0.21.0 [INFO] [stderr] Checking h2 v0.3.27 [INFO] [stderr] Checking combine v4.6.7 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking redis v0.25.4 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking arbitrage2 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `redis::aio::MultiplexedConnection` [INFO] [stdout] --> src/strategy/opportunity_detector.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use redis::aio::MultiplexedConnection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `redis::aio::MultiplexedConnection` [INFO] [stdout] --> src/strategy/opportunity_detector.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use redis::aio::MultiplexedConnection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `redis::AsyncCommands` [INFO] [stdout] --> src/strategy/opportunity_detector.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | use redis::AsyncCommands; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_quantity` [INFO] [stdout] --> src/strategy/atomic_execution.rs:444:9 [INFO] [stdout] | [INFO] [stdout] 444 | target_quantity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_quantity` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api_duration` [INFO] [stdout] --> src/strategy/entry.rs:848:29 [INFO] [stdout] | [INFO] [stdout] 848 | let api_duration = api_start.elapsed().as_millis(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_duration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `long_filled` is never read [INFO] [stdout] --> src/strategy/entry.rs:2033:45 [INFO] [stdout] | [INFO] [stdout] 2033 | ... long_filled = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 2124 | ... long_filled = true; [INFO] [stdout] | ------------------ `long_filled` is overwritten here before the previous value is read [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `short_filled` is never read [INFO] [stdout] --> src/strategy/entry.rs:1775:45 [INFO] [stdout] | [INFO] [stdout] 1775 | ... short_filled = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 1866 | ... short_filled = true; [INFO] [stdout] | ------------------- `short_filled` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0560]: struct `TestnetConfig` has no field named `binance` [INFO] [stdout] --> src/strategy/price_chaser.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | binance: None, [INFO] [stdout] | ^^^^^^^ `TestnetConfig` does not have this field [INFO] [stdout] | [INFO] [stdout] = note: all struct fields are already assigned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `redis::AsyncCommands` [INFO] [stdout] --> src/strategy/opportunity_detector.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | use redis::AsyncCommands; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `symbol` [INFO] [stdout] --> src/strategy/testnet_backend.rs:71:62 [INFO] [stdout] | [INFO] [stdout] 71 | async fn set_margin_type_isolated(&self, exchange: &str, symbol: &str) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_quantity` [INFO] [stdout] --> src/strategy/atomic_execution.rs:444:9 [INFO] [stdout] | [INFO] [stdout] 444 | target_quantity: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_quantity` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api_duration` [INFO] [stdout] --> src/strategy/entry.rs:848:29 [INFO] [stdout] | [INFO] [stdout] 848 | let api_duration = api_start.elapsed().as_millis(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_duration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `long_filled` is never read [INFO] [stdout] --> src/strategy/entry.rs:2033:45 [INFO] [stdout] | [INFO] [stdout] 2033 | ... long_filled = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 2124 | ... long_filled = true; [INFO] [stdout] | ------------------ `long_filled` is overwritten here before the previous value is read [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `short_filled` is never read [INFO] [stdout] --> src/strategy/entry.rs:1775:45 [INFO] [stdout] | [INFO] [stdout] 1775 | ... short_filled = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 1866 | ... short_filled = true; [INFO] [stdout] | ------------------- `short_filled` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `symbol` [INFO] [stdout] --> src/strategy/testnet_backend.rs:71:62 [INFO] [stdout] | [INFO] [stdout] 71 | async fn set_margin_type_isolated(&self, exchange: &str, symbol: &str) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 2 arguments were supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | metrics.log_summary("binance", "BTCUSDT"); [INFO] [stdout] | ^^^^^^^^^^^ --------- --------- unexpected argument #2 of type `&'static str` [INFO] [stdout] | | [INFO] [stdout] | unexpected argument #1 of type `&'static str` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub fn log_summary(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: remove the extra arguments [INFO] [stdout] | [INFO] [stdout] 136 - metrics.log_summary("binance", "BTCUSDT"); [INFO] [stdout] 136 + metrics.log_summary(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `arbitrage2::strategy::testnet::binance_demo` [INFO] [stdout] --> tests/binance_order_book_depth_integration_test.rs:4:36 [INFO] [stdout] | [INFO] [stdout] 4 | use arbitrage2::strategy::testnet::binance_demo::BinanceDemoClient; [INFO] [stdout] | ^^^^^^^^^^^^ could not find `binance_demo` in `testnet` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `HedgeTimingMetrics` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:159:24 [INFO] [stdout] | [INFO] [stdout] 159 | assert_eq!(metrics.total_reprice_time.as_secs(), 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | metrics.record_reprice(reprice_duration_1); [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------ unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 202 - metrics.record_reprice(reprice_duration_1); [INFO] [stdout] 202 + metrics.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `HedgeTimingMetrics` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:206:24 [INFO] [stdout] | [INFO] [stdout] 206 | assert_eq!(metrics.total_reprice_time.as_millis(), 50); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | metrics.record_reprice(reprice_duration_2); [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------ unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 213 - metrics.record_reprice(reprice_duration_2); [INFO] [stdout] 213 + metrics.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `HedgeTimingMetrics` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:223:24 [INFO] [stdout] | [INFO] [stdout] 223 | assert_eq!(metrics.total_reprice_time.as_millis(), 80); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0432`. [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:232:17 [INFO] [stdout] | [INFO] [stdout] 232 | metrics.record_reprice(Duration::from_millis(i * 10)); [INFO] [stdout] | ^^^^^^^^^^^^^^ ----------------------------- unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 232 - metrics.record_reprice(Duration::from_millis(i * 10)); [INFO] [stdout] 232 + metrics.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `HedgeTimingMetrics` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:237:24 [INFO] [stdout] | [INFO] [stdout] 237 | assert_eq!(metrics.total_reprice_time.as_millis(), 150); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `arbitrage2` (test "binance_order_book_depth_integration_test") due to 1 previous error [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | metrics.record_reprice(Duration::from_millis(25)); [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------------- unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 257 - metrics.record_reprice(Duration::from_millis(25)); [INFO] [stdout] 257 + metrics.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:259:13 [INFO] [stdout] | [INFO] [stdout] 259 | metrics.record_reprice(Duration::from_millis(30)); [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------------- unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 259 - metrics.record_reprice(Duration::from_millis(30)); [INFO] [stdout] 259 + metrics.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 2 arguments were supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 283 | metrics.log_summary("binance", "BTCUSDT"); [INFO] [stdout] | ^^^^^^^^^^^ --------- --------- unexpected argument #2 of type `&'static str` [INFO] [stdout] | | [INFO] [stdout] | unexpected argument #1 of type `&'static str` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub fn log_summary(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: remove the extra arguments [INFO] [stdout] | [INFO] [stdout] 283 - metrics.log_summary("binance", "BTCUSDT"); [INFO] [stdout] 283 + metrics.log_summary(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `HedgeTimingMetrics` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:287:24 [INFO] [stdout] | [INFO] [stdout] 287 | assert_eq!(metrics.total_reprice_time.as_millis(), 55); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:299:13 [INFO] [stdout] | [INFO] [stdout] 299 | metrics.record_reprice(Duration::from_millis(20)); [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------------- unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 299 - metrics.record_reprice(Duration::from_millis(20)); [INFO] [stdout] 299 + metrics.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:300:13 [INFO] [stdout] | [INFO] [stdout] 300 | metrics.record_reprice(Duration::from_millis(15)); [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------------- unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 300 - metrics.record_reprice(Duration::from_millis(15)); [INFO] [stdout] 300 + metrics.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `HedgeTimingMetrics` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:316:24 [INFO] [stdout] | [INFO] [stdout] 316 | assert_eq!(metrics.total_reprice_time.as_millis(), 35); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PipelineMetrics` [INFO] [stdout] --> tests/pipeline_test.rs:1:54 [INFO] [stdout] | [INFO] [stdout] 1 | use arbitrage2::strategy::pipeline::{MarketPipeline, PipelineMetrics}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:336:15 [INFO] [stdout] | [INFO] [stdout] 336 | m.record_reprice(Duration::from_millis(10 * (i + 1))); [INFO] [stdout] | ^^^^^^^^^^^^^^ ----------------------------------- unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 336 - m.record_reprice(Duration::from_millis(10 * (i + 1))); [INFO] [stdout] 336 + m.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `std::sync::MutexGuard<'_, HedgeTimingMetrics>` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:349:30 [INFO] [stdout] | [INFO] [stdout] 349 | assert_eq!(final_metrics.total_reprice_time.as_millis(), 150); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `HedgeTimingMetrics` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:372:24 [INFO] [stdout] | [INFO] [stdout] 372 | assert_eq!(metrics.total_reprice_time.as_secs(), 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:380:13 [INFO] [stdout] | [INFO] [stdout] 380 | metrics.record_reprice(Duration::from_millis(42)); [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------------- unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 380 - metrics.record_reprice(Duration::from_millis(42)); [INFO] [stdout] 380 + metrics.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `HedgeTimingMetrics` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:397:24 [INFO] [stdout] | [INFO] [stdout] 397 | assert_eq!(metrics.total_reprice_time.as_millis(), 42); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:405:60 [INFO] [stdout] | [INFO] [stdout] 405 | metrics.record_api_response("depth_check".to_string(), 15); [INFO] [stdout] | ------------------- ^^ expected `Duration`, found integer [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn record_api_response(&mut self, endpoint: String, duration: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:406:61 [INFO] [stdout] | [INFO] [stdout] 406 | metrics.record_api_response("cancel_order".to_string(), 25); [INFO] [stdout] | ------------------- ^^ expected `Duration`, found integer [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn record_api_response(&mut self, endpoint: String, duration: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:407:60 [INFO] [stdout] | [INFO] [stdout] 407 | metrics.record_api_response("place_order".to_string(), 30); [INFO] [stdout] | ------------------- ^^ expected `Duration`, found integer [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn record_api_response(&mut self, endpoint: String, duration: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 0 arguments but 1 argument was supplied [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:414:13 [INFO] [stdout] | [INFO] [stdout] 414 | metrics.record_reprice(Duration::from_millis(20)); [INFO] [stdout] | ^^^^^^^^^^^^^^ ------------------------- unexpected argument of type `Duration` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/strategy/atomic_execution.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn record_reprice(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the extra argument [INFO] [stdout] | [INFO] [stdout] 414 - metrics.record_reprice(Duration::from_millis(20)); [INFO] [stdout] 414 + metrics.record_reprice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:419:49 [INFO] [stdout] | [INFO] [stdout] 419 | assert_eq!(metrics.api_response_times[0].1, 15); [INFO] [stdout] | ^^ expected `Duration`, found integer [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `total_reprice_time` on type `HedgeTimingMetrics` [INFO] [stdout] --> tests/hedge_timing_metrics_test.rs:423:24 [INFO] [stdout] | [INFO] [stdout] 423 | assert_eq!(metrics.total_reprice_time.as_millis(), 20); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `fill_detected_at`, `other_leg_check_at`, `cancel_initiated_at`, `cancel_completed_at`, `market_order_initiated_at` ... and 9 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0308, E0609. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `arbitrage2` (test "hedge_timing_metrics_test") due to 26 previous errors [INFO] [stdout] warning: fields `available_capital` and `utilization_pct` are never read [INFO] [stdout] --> src/bin/trading-monitor.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 22 | struct PortfolioMetrics { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | available_capital: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 28 | utilization_pct: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PortfolioMetrics` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `trade_id`, `symbol`, `current_long_price`, and `current_short_price` are never read [INFO] [stdout] --> src/bin/trading-monitor.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 54 | struct TradeMetrics { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 55 | trade_id: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 56 | symbol: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | current_long_price: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 60 | current_short_price: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TradeMetrics` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `retry_3` [INFO] [stdout] --> src/strategy/fill_probability.rs:306:13 [INFO] [stdout] | [INFO] [stdout] 306 | let retry_3 = estimator.should_retry_limit(&order_book, OrderSide::Long, 500.0, 3); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_retry_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0560`. [INFO] [stdout] [INFO] [stderr] error: could not compile `arbitrage2` (lib test) due to 1 previous error; 8 warnings emitted [INFO] running `Command { std: "docker" "inspect" "a283a9700a229d2376a031d25bfabb9fb3b89a412580c1d00830a8faae390eee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a283a9700a229d2376a031d25bfabb9fb3b89a412580c1d00830a8faae390eee", kill_on_drop: false }` [INFO] [stdout] a283a9700a229d2376a031d25bfabb9fb3b89a412580c1d00830a8faae390eee