[INFO] cloning repository https://github.com/nagyben/wsb-dd-analyzer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nagyben/wsb-dd-analyzer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnagyben%2Fwsb-dd-analyzer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnagyben%2Fwsb-dd-analyzer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 420abe676bb304fee2d34a712e724f6910610904 [INFO] testing nagyben/wsb-dd-analyzer against try#bd7d74411512a3dd3b35d2f699c51dd2557c7e7e+cargoflags=-Zbuild-dir-new-layout for pr-149852-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnagyben%2Fwsb-dd-analyzer" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/nagyben/wsb-dd-analyzer [INFO] finished tweaking git repo https://github.com/nagyben/wsb-dd-analyzer [INFO] tweaked toml for git repo https://github.com/nagyben/wsb-dd-analyzer written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/nagyben/wsb-dd-analyzer on toolchain bd7d74411512a3dd3b35d2f699c51dd2557c7e7e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/nagyben/wsb-dd-analyzer 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" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded roux v2.2.15 [INFO] [stderr] Downloaded as-any v0.3.2 [INFO] [stderr] Downloaded eventsource-stream v0.2.3 [INFO] [stderr] Downloaded rig-derive v0.1.7 [INFO] [stderr] Downloaded axum-core v0.5.5 [INFO] [stderr] Downloaded deluxe-core v0.5.0 [INFO] [stderr] Downloaded yahoo_finance_api v4.1.0 [INFO] [stderr] Downloaded askama v0.14.0 [INFO] [stderr] Downloaded askama_parser v0.14.0 [INFO] [stderr] Downloaded askama_derive v0.14.0 [INFO] [stderr] Downloaded schemars v1.0.4 [INFO] [stderr] Downloaded rustls-webpki v0.103.6 [INFO] [stderr] Downloaded webpki-roots v1.0.4 [INFO] [stderr] Downloaded basic-toml v0.1.10 [INFO] [stderr] Downloaded axum v0.8.6 [INFO] [stderr] Downloaded hyper-util v0.1.17 [INFO] [stderr] Downloaded tokio-rustls v0.26.3 [INFO] [stderr] Downloaded deluxe-macros v0.5.0 [INFO] [stderr] Downloaded deluxe v0.5.0 [INFO] [stderr] Downloaded schemars_derive v1.0.4 [INFO] [stderr] Downloaded maybe-async v0.2.10 [INFO] [stderr] Downloaded rustls v0.23.32 [INFO] [stderr] Downloaded rig-core v0.23.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 501bdff6623a0c3440d01642fb2574ce70e290da33fe41b03caff68910f22332 [INFO] running `Command { std: "docker" "start" "-a" "501bdff6623a0c3440d01642fb2574ce70e290da33fe41b03caff68910f22332", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "501bdff6623a0c3440d01642fb2574ce70e290da33fe41b03caff68910f22332", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "501bdff6623a0c3440d01642fb2574ce70e290da33fe41b03caff68910f22332", kill_on_drop: false }` [INFO] [stdout] 501bdff6623a0c3440d01642fb2574ce70e290da33fe41b03caff68910f22332 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "build" "--frozen" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }` [INFO] [stdout] 43ac40c09b5bec4881a16fc1629773a2c62cd237be7452b20922a77c56fd89a1 [INFO] running `Command { std: "docker" "start" "-a" "43ac40c09b5bec4881a16fc1629773a2c62cd237be7452b20922a77c56fd89a1", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.19 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling find-msvc-tools v0.1.2 [INFO] [stderr] Compiling hashbrown v0.16.0 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling serde_core v1.0.226 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling serde v1.0.226 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling bitflags v2.9.4 [INFO] [stderr] Compiling rustls v0.23.32 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling time v0.3.44 [INFO] [stderr] Compiling webpki-roots v1.0.4 [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling cc v1.2.38 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling owo-colors v4.2.2 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling if_chain v1.0.2 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Compiling indexmap v2.11.4 [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Compiling gimli v0.31.1 [INFO] [stderr] Compiling color-spantrace v0.3.0 [INFO] [stderr] Compiling unicode-width v0.2.1 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling tracing-subscriber v0.3.20 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling convert_case v0.8.0 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling rustc-demangle v0.1.26 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling indenter v0.3.4 [INFO] [stderr] Compiling papergrid v0.17.0 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling ordered-float v5.1.0 [INFO] [stderr] Compiling testing_table v0.3.0 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Compiling as-any v0.3.2 [INFO] [stderr] Compiling addr2line v0.24.2 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Compiling eventsource-stream v0.2.3 [INFO] [stderr] Compiling basic-toml v0.1.10 [INFO] [stderr] Compiling backtrace v0.3.75 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling deluxe-core v0.5.0 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.226 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling schemars_derive v1.0.4 [INFO] [stderr] Compiling deluxe-macros v0.5.0 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling tokio v1.47.1 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling tabled_derive v0.11.0 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling maybe-async v0.2.10 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling rustls-webpki v0.103.6 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling pin-project v1.1.10 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling tracing-error v0.2.1 [INFO] [stderr] Compiling zerovec v0.11.4 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling axum-core v0.5.5 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling color-eyre v0.6.5 [INFO] [stderr] Compiling tabled v0.20.0 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.3 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling clap v4.5.51 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling askama_parser v0.14.0 [INFO] [stderr] Compiling deluxe v0.5.0 [INFO] [stderr] Compiling rig-derive v0.1.7 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling schemars v1.0.4 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling tracing-futures v0.2.5 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling publicsuffix v2.3.0 [INFO] [stderr] Compiling url v2.5.7 [INFO] [stderr] Compiling askama_derive v0.14.0 [INFO] [stderr] Compiling tokio-util v0.7.16 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tokio-rustls v0.26.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling cookie_store v0.21.1 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling h2 v0.4.12 [INFO] [stderr] Compiling askama v0.14.0 [INFO] [stderr] Compiling hyper v1.7.0 [INFO] [stderr] Compiling hyper-util v0.1.17 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling axum v0.8.6 [INFO] [stderr] Compiling reqwest v0.12.23 [INFO] [stderr] Compiling roux v2.2.15 [INFO] [stderr] Compiling rig-core v0.23.1 [INFO] [stderr] Compiling yahoo_finance_api v4.1.0 [INFO] [stderr] Compiling wsb-dd-analyser v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_headers` is never used [INFO] [stdout] --> src/reddit.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn build_headers() -> header::HeaderMap { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_listing` is never used [INFO] [stdout] --> src/reddit.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | async fn fetch_listing(client: &reqwest::Client, url: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_top` is never used [INFO] [stdout] --> src/reddit.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | pub(crate) async fn get_top(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_hot` is never used [INFO] [stdout] --> src/reddit.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) async fn get_hot(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_positions_for_post` is never used [INFO] [stdout] --> src/reddit.rs:71:10 [INFO] [stdout] | [INFO] [stdout] 71 | async fn get_positions_for_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deduplicate_positions` is never used [INFO] [stdout] --> src/reddit.rs:93:4 [INFO] [stdout] | [INFO] [stdout] 93 | fn deduplicate_positions(positions: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enrich_positions_with_prices` is never used [INFO] [stdout] --> src/reddit.rs:126:10 [INFO] [stdout] | [INFO] [stdout] 126 | async fn enrich_positions_with_prices( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_single_post` is never used [INFO] [stdout] --> src/reddit.rs:161:10 [INFO] [stdout] | [INFO] [stdout] 161 | async fn process_single_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_posts_with_flair` is never used [INFO] [stdout] --> src/reddit.rs:196:21 [INFO] [stdout] | [INFO] [stdout] 196 | pub(crate) async fn fetch_posts_with_flair( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `selftext` are never read [INFO] [stdout] --> src/types.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Post { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | #[tabled(skip)] [INFO] [stdout] 11 | pub(crate) name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub(crate) selftext: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Post` 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: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_prices_batch` is never used [INFO] [stdout] --> src/price_fetcher.rs:77:14 [INFO] [stdout] | [INFO] [stdout] 77 | pub async fn fetch_prices_batch( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Flair` is never constructed [INFO] [stdout] --> src/types.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Flair { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.19s [INFO] running `Command { std: "docker" "inspect" "43ac40c09b5bec4881a16fc1629773a2c62cd237be7452b20922a77c56fd89a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "43ac40c09b5bec4881a16fc1629773a2c62cd237be7452b20922a77c56fd89a1", kill_on_drop: false }` [INFO] [stdout] 43ac40c09b5bec4881a16fc1629773a2c62cd237be7452b20922a77c56fd89a1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "--no-run" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }` [INFO] [stdout] a720d36d6624f8ac1550ffc1b4668807323bae58a55d9fe5ecf08294a1908267 [INFO] running `Command { std: "docker" "start" "-a" "a720d36d6624f8ac1550ffc1b4668807323bae58a55d9fe5ecf08294a1908267", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_headers` is never used [INFO] [stdout] --> src/reddit.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn build_headers() -> header::HeaderMap { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_listing` is never used [INFO] [stdout] --> src/reddit.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | async fn fetch_listing(client: &reqwest::Client, url: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_top` is never used [INFO] [stdout] --> src/reddit.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | pub(crate) async fn get_top(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_hot` is never used [INFO] [stdout] --> src/reddit.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) async fn get_hot(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_positions_for_post` is never used [INFO] [stdout] --> src/reddit.rs:71:10 [INFO] [stdout] | [INFO] [stdout] 71 | async fn get_positions_for_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deduplicate_positions` is never used [INFO] [stdout] --> src/reddit.rs:93:4 [INFO] [stdout] | [INFO] [stdout] 93 | fn deduplicate_positions(positions: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enrich_positions_with_prices` is never used [INFO] [stdout] --> src/reddit.rs:126:10 [INFO] [stdout] | [INFO] [stdout] 126 | async fn enrich_positions_with_prices( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling wsb-dd-analyser v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `process_single_post` is never used [INFO] [stdout] --> src/reddit.rs:161:10 [INFO] [stdout] | [INFO] [stdout] 161 | async fn process_single_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_posts_with_flair` is never used [INFO] [stdout] --> src/reddit.rs:196:21 [INFO] [stdout] | [INFO] [stdout] 196 | pub(crate) async fn fetch_posts_with_flair( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `selftext` are never read [INFO] [stdout] --> src/types.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Post { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | #[tabled(skip)] [INFO] [stdout] 11 | pub(crate) name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub(crate) selftext: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Post` 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: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [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: `Value` [INFO] [stdout] --> src/llm_extractor.rs:5:18 [INFO] [stdout] | [INFO] [stdout] 5 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_headers` is never used [INFO] [stdout] --> src/reddit.rs:16:4 [INFO] [stdout] | [INFO] [stdout] 16 | fn build_headers() -> header::HeaderMap { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_listing` is never used [INFO] [stdout] --> src/reddit.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | async fn fetch_listing(client: &reqwest::Client, url: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_top` is never used [INFO] [stdout] --> src/reddit.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | pub(crate) async fn get_top(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_hot` is never used [INFO] [stdout] --> src/reddit.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) async fn get_hot(client: &reqwest::Client) -> Result> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_positions_for_post` is never used [INFO] [stdout] --> src/reddit.rs:71:10 [INFO] [stdout] | [INFO] [stdout] 71 | async fn get_positions_for_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deduplicate_positions` is never used [INFO] [stdout] --> src/reddit.rs:93:4 [INFO] [stdout] | [INFO] [stdout] 93 | fn deduplicate_positions(positions: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enrich_positions_with_prices` is never used [INFO] [stdout] --> src/reddit.rs:126:10 [INFO] [stdout] | [INFO] [stdout] 126 | async fn enrich_positions_with_prices( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_single_post` is never used [INFO] [stdout] --> src/reddit.rs:161:10 [INFO] [stdout] | [INFO] [stdout] 161 | async fn process_single_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_posts_with_flair` is never used [INFO] [stdout] --> src/reddit.rs:196:21 [INFO] [stdout] | [INFO] [stdout] 196 | pub(crate) async fn fetch_posts_with_flair( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `selftext` are never read [INFO] [stdout] --> src/types.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Post { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | #[tabled(skip)] [INFO] [stdout] 11 | pub(crate) name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub(crate) selftext: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Post` 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: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fetch_prices_batch` is never used [INFO] [stdout] --> src/price_fetcher.rs:77:14 [INFO] [stdout] | [INFO] [stdout] 77 | pub async fn fetch_prices_batch( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_flair` is never used [INFO] [stdout] --> src/types.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Flair` is never constructed [INFO] [stdout] --> src/types.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Flair { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.81s [INFO] running `Command { std: "docker" "inspect" "a720d36d6624f8ac1550ffc1b4668807323bae58a55d9fe5ecf08294a1908267", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a720d36d6624f8ac1550ffc1b4668807323bae58a55d9fe5ecf08294a1908267", kill_on_drop: false }` [INFO] [stdout] a720d36d6624f8ac1550ffc1b4668807323bae58a55d9fe5ecf08294a1908267 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "-Zbuild-dir-new-layout", kill_on_drop: false }` [INFO] [stdout] 2415dbac23ebd7c982f7641b3d6092d28507bab269dae6ddd193e0d0f7f2fd78 [INFO] running `Command { std: "docker" "start" "-a" "2415dbac23ebd7c982f7641b3d6092d28507bab269dae6ddd193e0d0f7f2fd78", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `Value` [INFO] [stderr] --> src/llm_extractor.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | use serde_json::{Value, json}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `build_headers` is never used [INFO] [stderr] --> src/reddit.rs:16:4 [INFO] [stderr] | [INFO] [stderr] 16 | fn build_headers() -> header::HeaderMap { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `fetch_listing` is never used [INFO] [stderr] --> src/reddit.rs:37:10 [INFO] [stderr] | [INFO] [stderr] 37 | async fn fetch_listing(client: &reqwest::Client, url: &str) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_top` is never used [INFO] [stderr] --> src/reddit.rs:62:21 [INFO] [stderr] | [INFO] [stderr] 62 | pub(crate) async fn get_top(client: &reqwest::Client) -> Result> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_hot` is never used [INFO] [stderr] --> src/reddit.rs:66:21 [INFO] [stderr] | [INFO] [stderr] 66 | pub(crate) async fn get_hot(client: &reqwest::Client) -> Result> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_positions_for_post` is never used [INFO] [stderr] --> src/reddit.rs:71:10 [INFO] [stderr] | [INFO] [stderr] 71 | async fn get_positions_for_post( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `deduplicate_positions` is never used [INFO] [stderr] --> src/reddit.rs:93:4 [INFO] [stderr] | [INFO] [stderr] 93 | fn deduplicate_positions(positions: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `enrich_positions_with_prices` is never used [INFO] [stderr] --> src/reddit.rs:126:10 [INFO] [stderr] | [INFO] [stderr] 126 | async fn enrich_positions_with_prices( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `process_single_post` is never used [INFO] [stderr] --> src/reddit.rs:161:10 [INFO] [stderr] | [INFO] [stderr] 161 | async fn process_single_post( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `fetch_posts_with_flair` is never used [INFO] [stderr] --> src/reddit.rs:196:21 [INFO] [stderr] | [INFO] [stderr] 196 | pub(crate) async fn fetch_posts_with_flair( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `name` and `selftext` are never read [INFO] [stderr] --> src/types.rs:11:16 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct Post { [INFO] [stderr] | ---- fields in this struct [INFO] [stderr] 10 | #[tabled(skip)] [INFO] [stderr] 11 | pub(crate) name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 21 | pub(crate) selftext: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Post` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `display_flair` is never used [INFO] [stderr] --> src/types.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | fn display_flair(flairs: &Option>) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `wsb-dd-analyser` (lib) generated 12 warnings (run `cargo fix --lib -p wsb-dd-analyser` to apply 1 suggestion) [INFO] [stderr] warning: `wsb-dd-analyser` (lib test) generated 12 warnings (12 duplicates) [INFO] [stderr] warning: function `fetch_prices_batch` is never used [INFO] [stderr] --> src/price_fetcher.rs:77:14 [INFO] [stderr] | [INFO] [stderr] 77 | pub async fn fetch_prices_batch( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `Flair` is never constructed [INFO] [stderr] --> src/types.rs:42:12 [INFO] [stderr] | [INFO] [stderr] 42 | pub struct Flair { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `wsb-dd-analyser` (bin "wsb-dd-analyser" test) generated 4 warnings (2 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.18s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/build/wsb-dd-analyser/bb8b70a3f0e805cc/deps/wsb_dd_analyser-bb8b70a3f0e805cc) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test llm_extractor::tests::test_extract_positions_from_short_text ... ok [INFO] [stdout] test llm_extractor::tests::test_extract_positions_from_empty_text ... ok [INFO] [stdout] test cache::tests::test_cache_round_trip ... FAILED [INFO] [stdout] test llm_extractor::tests::test_extract_positions_real_api ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- cache::tests::test_cache_round_trip stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'cache::tests::test_cache_round_trip' (25) panicked at src/cache.rs:150:44: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Read-only file system (os error 30) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/cache.rs:18:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5a4b816f4f02 - std[840933623431fd06]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5a4b816f4f02 - std[840933623431fd06]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5a4b816f4f02 - std[840933623431fd06]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5a4b816f4f02 - <::print::DisplayBacktrace as core[8f93d80df273fe75]::fmt::Display>::fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5a4b8170c33a - ::fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5a4b8170c33a - core[8f93d80df273fe75]::fmt::write [INFO] [stdout] 6: 0x5a4b816fa206 - std[840933623431fd06]::io::default_write_fmt::> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5a4b816fa206 - as std[840933623431fd06]::io::Write>::write_fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5a4b816d0fff - ::print [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5a4b816d0fff - std[840933623431fd06]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5a4b816ec339 - std[840933623431fd06]::panicking::default_hook [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5a4b80e2e9de - core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9 [INFO] [stdout] 12: 0x5a4b80e2e9de - test[2f1252070343a163]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5a4b816ec5a2 - core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9 [INFO] [stdout] 14: 0x5a4b816ec5a2 - std[840933623431fd06]::panicking::panic_with_hook [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5a4b816d10b8 - std[840933623431fd06]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5a4b816c8699 - std[840933623431fd06]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5a4b816d217d - __rustc[5b4a0c6d8cc4a177]::rust_begin_unwind [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5a4b8170caac - core[8f93d80df273fe75]::panicking::panic_fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5a4b8170c7f2 - core[8f93d80df273fe75]::result::unwrap_failed [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x5a4b80df6447 - >::unwrap [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x5a4b80df6447 - wsb_dd_analyser[608d00249f37e484]::cache::tests::test_cache_round_trip [INFO] [stdout] at /opt/rustwide/workdir/src/cache.rs:150:44 [INFO] [stdout] 22: 0x5a4b80df4e17 - wsb_dd_analyser[608d00249f37e484]::cache::tests::test_cache_round_trip::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/cache.rs:128:31 [INFO] [stdout] 23: 0x5a4b80dd6d26 - >::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5a4b80e22d8b - core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x5a4b80e22d8b - test[2f1252070343a163]::__rust_begin_short_backtrace::, fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x5a4b80e2f5ea - test[2f1252070343a163]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x5a4b80e2f5ea - as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 28: 0x5a4b80e2f5ea - std[840933623431fd06]::panicking::catch_unwind::do_call::, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x5a4b80e2f5ea - std[840933623431fd06]::panicking::catch_unwind::, core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x5a4b80e2f5ea - std[840933623431fd06]::panic::catch_unwind::, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x5a4b80e2f5ea - test[2f1252070343a163]::run_test_in_process [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x5a4b80e2f5ea - test[2f1252070343a163]::run_test::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x5a4b80e29ab4 - test[2f1252070343a163]::run_test::{closure#1} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x5a4b80e29ab4 - std[840933623431fd06]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x5a4b80e320e2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 36: 0x5a4b80e320e2 - ::{closure#1}::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 37: 0x5a4b80e320e2 - std[840933623431fd06]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x5a4b80e320e2 - std[840933623431fd06]::panicking::catch_unwind::<(), core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x5a4b80e320e2 - std[840933623431fd06]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x5a4b80e320e2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 41: 0x5a4b80e320e2 - ::{closure#1} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x5a4b816f422f - + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2206:9 [INFO] [stdout] 43: 0x5a4b816f422f - ::new::thread_start [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/thread/unix.rs:119:17 [INFO] [stdout] 44: 0x7f49c5e57aa4 - [INFO] [stdout] 45: 0x7f49c5ee4a64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- llm_extractor::tests::test_extract_positions_real_api stdout ---- [INFO] [stdout] 2026-01-16T19:03:43.577650Z  INFO wsb_dd_analyser::llm_extractor: Extracting positions from post... [INFO] [stdout] 2026-01-16T19:03:43.645117Z DEBUG chat{gen_ai.operation.name="chat" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]"}: rig::providers::gemini::completion: Sending completion request to Gemini API { [INFO] [stdout] "contents": [ [INFO] [stdout] { [INFO] [stdout] "parts": [ [INFO] [stdout] { [INFO] [stdout] "thought": false, [INFO] [stdout] "text": "You are an expert at extracting trading positions from WallStreetBets DD posts.\n\nExtract ALL trading positions mentioned in the text. Look for:\n- Stock tickers (with or without $ prefix)\n- Actions: Long, Short, Buy, Sell, Call, Put\n- Quantities and prices\n- Options details (strike price, expiration)\n\nReturn a JSON array of positions with this exact structure:\n[\n {\n \"ticker\": \"GME\",\n \"action\": \"Long\" | \"Short\" | \"Buy\" | \"Sell\" | \"Call\" | \"Put\",\n \"quantity\": 100.0,\n \"price\": 25.50,\n \"strike_price\": 30.0,\n \"expiration\": \"2024-12-20\"\n }\n]\n\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\n\nRules:\n- ticker: Uppercase stock symbol without $\n- action: One of the 6 exact values above\n- quantity: Number of shares/contracts (null if not mentioned)\n- price: Entry price per share (null if not mentioned)\n- strike_price: For options only (null for stocks)\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\n- If no positions found, return an empty array []\n- Be conservative - only extract clear position information\n\nNow extract trading positions from this WSB DD post:\n\nI'm going long on GME, bought 100 shares at $25.50.\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\n Short TSLA with 50 shares at $200." [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "role": "user" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "toolConfig": null, [INFO] [stdout] "generationConfig": {}, [INFO] [stdout] "safetySettings": null, [INFO] [stdout] "systemInstruction": null [INFO] [stdout] } [INFO] [stdout] 2026-01-16T19:03:43.645261Z DEBUG chat{gen_ai.operation.name="chat" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]"}: rig::providers::gemini::client: POST https://generativelanguage.googleapis.com//v1beta/models/gemini-2.5-flash-lite:generateContent?key=**** [INFO] [stdout] 2026-01-16T19:03:43.645624Z DEBUG chat{gen_ai.operation.name="chat" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]" gen_ai.input.messages="[{\"parts\":[{\"thought\":false,\"text\":\"You are an expert at extracting trading positions from WallStreetBets DD posts.\\n\\nExtract ALL trading positions mentioned in the text. Look for:\\n- Stock tickers (with or without $ prefix)\\n- Actions: Long, Short, Buy, Sell, Call, Put\\n- Quantities and prices\\n- Options details (strike price, expiration)\\n\\nReturn a JSON array of positions with this exact structure:\\n[\\n {\\n \\\"ticker\\\": \\\"GME\\\",\\n \\\"action\\\": \\\"Long\\\" | \\\"Short\\\" | \\\"Buy\\\" | \\\"Sell\\\" | \\\"Call\\\" | \\\"Put\\\",\\n \\\"quantity\\\": 100.0,\\n \\\"price\\\": 25.50,\\n \\\"strike_price\\\": 30.0,\\n \\\"expiration\\\": \\\"2024-12-20\\\"\\n }\\n]\\n\\nDon't wrap the response in a code block or backticks. Use null for any missing fields.\\n\\nRules:\\n- ticker: Uppercase stock symbol without $\\n- action: One of the 6 exact values above\\n- quantity: Number of shares/contracts (null if not mentioned)\\n- price: Entry price per share (null if not mentioned)\\n- strike_price: For options only (null for stocks)\\n- expiration: For options only in YYYY-MM-DD format (null for stocks)\\n- If no positions found, return an empty array []\\n- Be conservative - only extract clear position information\\n\\nNow extract trading positions from this WSB DD post:\\n\\nI'm going long on GME, bought 100 shares at $25.50.\\n Also bought some AAPL calls with strike $150 expiring 2024-12-20.\\n Short TSLA with 50 shares at $200.\"}],\"role\":\"user\"}]"}: reqwest::connect: starting new connection: https://generativelanguage.googleapis.com/ [INFO] [stdout] [INFO] [stdout] thread 'llm_extractor::tests::test_extract_positions_real_api' (28) panicked at src/llm_extractor.rs:119:65: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: LLM extraction failed: CompletionError: HttpError: Http client error: error sending request for url (https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent?key=AIzaSyAMEqZr0RnqBa6NsoMV4ibnVhGKXR98zeY) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/llm_extractor.rs:82:23 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5a4b816f4f02 - std[840933623431fd06]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5a4b816f4f02 - std[840933623431fd06]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5a4b816f4f02 - std[840933623431fd06]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5a4b816f4f02 - <::print::DisplayBacktrace as core[8f93d80df273fe75]::fmt::Display>::fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5a4b8170c33a - ::fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5a4b8170c33a - core[8f93d80df273fe75]::fmt::write [INFO] [stdout] 6: 0x5a4b816fa206 - std[840933623431fd06]::io::default_write_fmt::> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5a4b816fa206 - as std[840933623431fd06]::io::Write>::write_fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5a4b816d0fff - ::print [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5a4b816d0fff - std[840933623431fd06]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5a4b816ec339 - std[840933623431fd06]::panicking::default_hook [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5a4b80e2e9de - core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9 [INFO] [stdout] 12: 0x5a4b80e2e9de - test[2f1252070343a163]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5a4b816ec5a2 - core[8f93d80df273fe75]::ops::function::Fn<(&'a std[840933623431fd06]::panic::PanicHookInfo<'b>,), Output = ()> + core[8f93d80df273fe75]::marker::Sync + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::Fn<(&std[840933623431fd06]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2220:9 [INFO] [stdout] 14: 0x5a4b816ec5a2 - std[840933623431fd06]::panicking::panic_with_hook [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5a4b816d10b8 - std[840933623431fd06]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x5a4b816c8699 - std[840933623431fd06]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5a4b816d217d - __rustc[5b4a0c6d8cc4a177]::rust_begin_unwind [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5a4b8170caac - core[8f93d80df273fe75]::panicking::panic_fmt [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5a4b8170c7f2 - core[8f93d80df273fe75]::result::unwrap_failed [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x5a4b80df1024 - , eyre[b38f33ab8b7089eb]::Report>>::unwrap [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x5a4b80df1024 - wsb_dd_analyser[608d00249f37e484]::llm_extractor::tests::test_extract_positions_real_api::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/llm_extractor.rs:119:65 [INFO] [stdout] 22: 0x5a4b80e044a2 - > as core[8f93d80df273fe75]::future::future::Future>::poll [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/future/future.rs:133:9 [INFO] [stdout] 23: 0x5a4b80e0451d - >> as core[8f93d80df273fe75]::future::future::Future>::poll [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/future/future.rs:133:9 [INFO] [stdout] 24: 0x5a4b80dfd65d - ::block_on::>>>::{closure#0}::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:742:70 [INFO] [stdout] 25: 0x5a4b80dfd55b - tokio[66616d6951af53c3]::task::coop::with_budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/task/coop/mod.rs:167:5 [INFO] [stdout] 26: 0x5a4b80dfd55b - tokio[66616d6951af53c3]::task::coop::budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/task/coop/mod.rs:133:5 [INFO] [stdout] 27: 0x5a4b80dfd55b - ::block_on::>>>::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:742:25 [INFO] [stdout] 28: 0x5a4b80df9170 - ::enter::, ::block_on>>>::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:432:19 [INFO] [stdout] 29: 0x5a4b80dfc22d - ::block_on::>>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:741:44 [INFO] [stdout] 30: 0x5a4b80dfb524 - ::enter::<::block_on>>>::{closure#0}, core[8f93d80df273fe75]::option::Option<()>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:829:68 [INFO] [stdout] 31: 0x5a4b80dedecb - >::set::<::enter<::block_on>>>::{closure#0}, core[8f93d80df273fe75]::option::Option<()>>::{closure#0}, (alloc[40b2bae28975ac47]::boxed::Box, core[8f93d80df273fe75]::option::Option<()>)> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 32: 0x5a4b80de3b39 - tokio[66616d6951af53c3]::runtime::context::set_scheduler::<(alloc[40b2bae28975ac47]::boxed::Box, core[8f93d80df273fe75]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8f93d80df273fe75]::option::Option<()>>::{closure#0}>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/context.rs:176:38 [INFO] [stdout] 33: 0x5a4b80dea302 - >::try_with::, core[8f93d80df273fe75]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8f93d80df273fe75]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[40b2bae28975ac47]::boxed::Box, core[8f93d80df273fe75]::option::Option<()>)> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/local.rs:513:12 [INFO] [stdout] 34: 0x5a4b80de9e8e - >::with::, core[8f93d80df273fe75]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8f93d80df273fe75]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[40b2bae28975ac47]::boxed::Box, core[8f93d80df273fe75]::option::Option<()>)> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/local.rs:477:20 [INFO] [stdout] 35: 0x5a4b80de2ced - tokio[66616d6951af53c3]::runtime::context::set_scheduler::<(alloc[40b2bae28975ac47]::boxed::Box, core[8f93d80df273fe75]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8f93d80df273fe75]::option::Option<()>>::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/context.rs:176:17 [INFO] [stdout] 36: 0x5a4b80dfa210 - ::enter::<::block_on>>>::{closure#0}, core[8f93d80df273fe75]::option::Option<()>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:829:27 [INFO] [stdout] 37: 0x5a4b80dfa506 - ::block_on::>>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:729:24 [INFO] [stdout] 38: 0x5a4b80dfb130 - ::block_on::>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:200:33 [INFO] [stdout] 39: 0x5a4b80dfaa43 - tokio[66616d6951af53c3]::runtime::context::runtime::enter_runtime::<::block_on>>::{closure#0}, ()> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 40: 0x5a4b80df8ca1 - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/scheduler/current_thread/mod.rs:188:9 [INFO] [stdout] 41: 0x5a4b80deda54 - ::block_on_inner::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/runtime.rs:356:52 [INFO] [stdout] 42: 0x5a4b80dedc1c - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/runtime/runtime.rs:330:18 [INFO] [stdout] 43: 0x5a4b80df25e3 - wsb_dd_analyser[608d00249f37e484]::llm_extractor::tests::test_extract_positions_real_api [INFO] [stdout] at /opt/rustwide/workdir/src/llm_extractor.rs:130:55 [INFO] [stdout] 44: 0x5a4b80df0cc7 - wsb_dd_analyser[608d00249f37e484]::llm_extractor::tests::test_extract_positions_real_api::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/llm_extractor.rs:112:47 [INFO] [stdout] 45: 0x5a4b80dd6c66 - >::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 46: 0x5a4b80e22d8b - core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 47: 0x5a4b80e22d8b - test[2f1252070343a163]::__rust_begin_short_backtrace::, fn() -> core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:663:18 [INFO] [stdout] 48: 0x5a4b80e2f5ea - test[2f1252070343a163]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:74 [INFO] [stdout] 49: 0x5a4b80e2f5ea - as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 50: 0x5a4b80e2f5ea - std[840933623431fd06]::panicking::catch_unwind::do_call::, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40 [INFO] [stdout] 51: 0x5a4b80e2f5ea - std[840933623431fd06]::panicking::catch_unwind::, core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19 [INFO] [stdout] 52: 0x5a4b80e2f5ea - std[840933623431fd06]::panic::catch_unwind::, core[8f93d80df273fe75]::result::Result<(), alloc[40b2bae28975ac47]::string::String>> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14 [INFO] [stdout] 53: 0x5a4b80e2f5ea - test[2f1252070343a163]::run_test_in_process [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:686:27 [INFO] [stdout] 54: 0x5a4b80e2f5ea - test[2f1252070343a163]::run_test::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:607:43 [INFO] [stdout] 55: 0x5a4b80e29ab4 - test[2f1252070343a163]::run_test::{closure#1} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/test/src/lib.rs:637:41 [INFO] [stdout] 56: 0x5a4b80e29ab4 - std[840933623431fd06]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 57: 0x5a4b80e320e2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 58: 0x5a4b80e320e2 - ::{closure#1}::{closure#0}> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 59: 0x5a4b80e320e2 - std[840933623431fd06]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:581:40 [INFO] [stdout] 60: 0x5a4b80e320e2 - std[840933623431fd06]::panicking::catch_unwind::<(), core[8f93d80df273fe75]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panicking.rs:544:19 [INFO] [stdout] 61: 0x5a4b80e320e2 - std[840933623431fd06]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/panic.rs:359:14 [INFO] [stdout] 62: 0x5a4b80e320e2 - std[840933623431fd06]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 63: 0x5a4b80e320e2 - ::{closure#1} as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 64: 0x5a4b816f422f - + core[8f93d80df273fe75]::marker::Send> as core[8f93d80df273fe75]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/alloc/src/boxed.rs:2206:9 [INFO] [stdout] 65: 0x5a4b816f422f - ::new::thread_start [INFO] [stdout] at /rustc/bd7d74411512a3dd3b35d2f699c51dd2557c7e7e/library/std/src/sys/thread/unix.rs:119:17 [INFO] [stdout] 66: 0x7f49c5e57aa4 - [INFO] [stdout] 67: 0x7f49c5ee4a64 - clone [INFO] [stdout] 68: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] cache::tests::test_cache_round_trip [INFO] [stdout] llm_extractor::tests::test_extract_positions_real_api [INFO] [stdout] [INFO] [stdout] test result: FAILED. 2 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--lib` [INFO] running `Command { std: "docker" "inspect" "2415dbac23ebd7c982f7641b3d6092d28507bab269dae6ddd193e0d0f7f2fd78", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2415dbac23ebd7c982f7641b3d6092d28507bab269dae6ddd193e0d0f7f2fd78", kill_on_drop: false }` [INFO] [stdout] 2415dbac23ebd7c982f7641b3d6092d28507bab269dae6ddd193e0d0f7f2fd78