[INFO] fetching crate taskito-core 0.22.0...
[INFO] testing taskito-core-0.22.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate taskito-core 0.22.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate taskito-core 0.22.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate taskito-core 0.22.0
[INFO] tweaked toml for crates.io crate taskito-core 0.22.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate taskito-core 0.22.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate taskito-core 0.22.0 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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623
[INFO] running `Command { std: "docker" "start" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling diesel_derives v2.3.7
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling chrono-tz v0.10.4
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling taskito-core v0.22.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling phf_shared v0.12.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling syn v3.0.2
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling sea-query v1.0.1
[INFO] [stderr]    Compiling phf v0.12.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.16
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling uuid v1.24.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling scheduled-thread-pool v0.2.7
[INFO] [stderr]    Compiling r2d2 v0.8.10
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling async-trait v0.1.91
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling diesel_table_macro_syntax v0.3.0
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling cron v0.16.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling dsl_auto_type v0.2.0
[INFO] [stderr]    Compiling diesel v2.3.11
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/worker/executor.rs:679:14
[INFO] [stdout]     |
[INFO] [stdout] 679 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 679 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stdout] 679 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/worker/remote.rs:984:18
[INFO] [stdout]     |
[INFO] [stdout] 984 |                 .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 984 -                 .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout] 984 +                 .try_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 22s
[INFO] running `Command { std: "docker" "inspect" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling combine v4.6.7
[INFO] [stderr]    Compiling arcstr v1.2.0
[INFO] [stderr]    Compiling xxhash-rust v0.8.18
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling scheduled-thread-pool v0.2.7
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling r2d2 v0.8.10
[INFO] [stderr]    Compiling diesel v2.3.11
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling cron v0.16.0
[INFO] [stderr]    Compiling chrono-tz v0.10.4
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling redis v1.5.0
[INFO] [stderr]    Compiling taskito-core v0.22.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/worker/executor.rs:679:14
[INFO] [stdout]     |
[INFO] [stdout] 679 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 679 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stdout] 679 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/worker/remote.rs:984:18
[INFO] [stdout]     |
[INFO] [stdout] 984 |                 .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 984 -                 .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout] 984 +                 .try_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/worker/executor.rs:679:14
[INFO] [stdout]     |
[INFO] [stdout] 679 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 679 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stdout] 679 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/worker/remote.rs:984:18
[INFO] [stdout]     |
[INFO] [stdout] 984 |                 .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 984 -                 .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout] 984 +                 .try_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 17s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v1.5.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]    --> src/worker/executor.rs:679:14
[INFO] [stderr]     |
[INFO] [stderr] 679 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 679 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stderr] 679 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |running| {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]    --> src/worker/remote.rs:984:18
[INFO] [stderr]     |
[INFO] [stderr] 984 |                 .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stderr]     |                  ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 984 -                 .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stderr] 984 +                 .try_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `taskito-core` (lib) generated 2 warnings (run `cargo fix --lib -p taskito-core` to apply 2 suggestions)
[INFO] [stderr] warning: `taskito-core` (lib test) generated 2 warnings (2 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v1.5.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/taskito-core/37ab6371e13c3fe5/out/taskito_core-37ab6371e13c3fe5)
[INFO] [stdout] 
[INFO] [stdout] running 263 tests
[INFO] [stdout] test periodic::tests::test_invalid_cron_expr ... ok
[INFO] [stdout] test periodic::tests::test_next_cron_time_every_minute ... ok
[INFO] [stdout] test resilience::rate_limiter::tests::test_parse_rate_limit ... ok
[INFO] [stdout] test job::tests::wire_name_matches_serde_output ... ok
[INFO] [stdout] test resilience::retry::tests::test_custom_delays_honored_exactly ... ok
[INFO] [stdout] test resilience::retry::tests::test_delay_capped ... ok
[INFO] [stdout] test resilience::retry::tests::test_desync_delay_keeps_floor ... ok
[INFO] [stdout] test resilience::retry::tests::test_full_jitter_bounds ... ok
[INFO] [stdout] test resilience::retry::tests::test_next_retry_at_bounded_by_growing_cap ... ok
[INFO] [stdout] test resilience::retry::tests::test_should_retry ... ok
[INFO] [stdout] test scheduler::codel::tests::below_target_never_drops ... ok
[INFO] [stdout] test scheduler::codel::tests::drop_rate_is_bounded_within_one_tick ... ok
[INFO] [stdout] test scheduler::codel::tests::recovery_exits_dropping_state ... ok
[INFO] [stdout] test scheduler::codel::tests::sustained_overload_starts_dropping ... ok
[INFO] [stdout] test scheduler::codel::tests::transient_spike_does_not_drop ... ok
[INFO] [stdout] test scheduler::retention::tests::cutoffs_drop_a_negative_window ... ok
[INFO] [stdout] test scheduler::retention::tests::cutoffs_map_windows_and_keep_none ... ok
[INFO] [stdout] test pubsub::tests::declared_topic_retention_sets_message_expiry ... ok
[INFO] [stdout] test pubsub::tests::publish_with_no_subscriptions_is_a_no_op ... ok
[INFO] [stdout] test pubsub::tests::paused_subscriptions_are_skipped ... ok
[INFO] [stdout] test pubsub::tests::declared_log_topic_retains_with_zero_subscribers ... ok
[INFO] [stdout] test scheduler::retention::tests::published_document_round_trips ... ok
[INFO] [stdout] test scheduler::retention::tests::setting_key_is_namespaced ... ok
[INFO] [stdout] test pubsub::tests::deliveries_carry_topic_and_subscription_notes ... ok
[INFO] [stdout] test pubsub::tests::undeclared_topic_with_no_log_sub_stores_nothing ... ok
[INFO] [stdout] test pubsub::tests::delivery_settings_resolve_override_then_subscription_then_queue ... ok
[INFO] [stdout] test pubsub::tests::declare_topic_rejects_bad_mode_and_negative_retention ... ok
[INFO] [stdout] test pubsub::tests::mixed_topic_logs_once_and_fans_out_to_fanout_subs ... ok
[INFO] [stdout] test scheduler::retention::tests::recommended_respects_the_ordering_invariant ... ok
[INFO] [stdout] test scheduler::retention::tests::dry_run_reported_follows_the_published_policy ... ok
[INFO] [stdout] test pubsub::tests::publish_fans_out_one_job_per_subscription ... ok
[INFO] [stdout] test pubsub::tests::idempotency_key_is_salted_per_subscription ... ok
[INFO] [stdout] test pubsub::tests::log_topic_writes_one_message_and_no_jobs ... ok
[INFO] [stdout] test pubsub::tests::declare_topic_is_idempotent_and_preserves_created_at ... ok
[INFO] [stdout] test resilience::rate_limiter::tests::test_token_bucket ... ok
[INFO] [stdout] test scheduler::retention::tests::dry_run_with_empty_config_is_disabled_not_defaulted ... ok
[INFO] [stdout] test scheduler::tests::test_default_retention_is_enabled ... ok
[INFO] [stdout] test scheduler::retention::tests::dry_run_with_no_config_is_defaulted_and_enabled ... ok
[INFO] [stdout] test scheduler::tests::test_effective_retention_drops_negative_explicit_window ... ok
[INFO] [stdout] test scheduler::tests::test_effective_retention_drops_negative_legacy_ttl ... ok
[INFO] [stdout] test scheduler::tests::test_effective_retention_maps_legacy_result_ttl ... ok
[INFO] [stdout] test scheduler::tests::test_effective_retention_prefers_explicit_map ... ok
[INFO] [stdout] test scheduler::tests::test_explicit_empty_retention_overrides_legacy_ttl ... ok
[INFO] [stdout] test scheduler::tests::test_check_periodic ... ok
[INFO] [stdout] test scheduler::tests::test_auto_cleanup_publishes_a_disabled_policy ... ok
[INFO] [stdout] test scheduler::tests::test_archive_retention_keeps_side_tables_with_no_window ... ok
[INFO] [stdout] test scheduler::tests::test_auto_cleanup_publishes_the_effective_windows ... ok
[INFO] [stdout] test scheduler::tests::test_auto_cleanup ... ok
[INFO] [stdout] test scheduler::tests::test_auto_cleanup_per_entry_ttl_without_global ... ok
[INFO] [stdout] test scheduler::tests::test_auto_cleanup_skips_when_another_holds_the_lock ... ok
[INFO] [stdout] test scheduler::tests::test_closed_channel_rollback_untracks_in_flight ... ok
[INFO] [stdout] test scheduler::tests::test_auto_cleanup_ignores_negative_result_ttl ... ok
[INFO] [stdout] test scheduler::tests::test_batch_dispatch_respects_per_task_concurrency ... ok
[INFO] [stdout] test scheduler::tests::test_auto_cleanup_purges_only_configured_tables ... ok
[INFO] [stdout] test scheduler::tests::test_codel_leaves_uncapped_queues_untouched ... ok
[INFO] [stdout] test scheduler::tests::test_codel_sheds_stale_job_to_dlq ... ok
[INFO] [stdout] test scheduler::tests::test_dispatch_drains_all_ready_jobs_in_one_wake ... ok
[INFO] [stdout] test scheduler::tests::test_explicit_zero_max_retries_no_retry ... ok
[INFO] [stdout] test scheduler::tests::test_full_channel_rollback_does_not_leak_in_flight_slot ... ok
[INFO] [stdout] test scheduler::tests::test_handle_cancelled ... ok
[INFO] [stdout] test scheduler::tests::test_handle_failure_exhausted ... ok
[INFO] [stdout] test scheduler::tests::test_handle_success ... ok
[INFO] [stdout] test scheduler::tests::test_no_retry_budget_configured_never_blocks ... ok
[INFO] [stdout] test scheduler::tests::test_retention_is_defaulted_only_without_config ... ok
[INFO] [stdout] test scheduler::tests::test_handle_failure_with_retry ... ok
[INFO] [stdout] test resilience::rate_limiter::tests::test_concurrent_token_acquisition ... ok
[INFO] [stdout] test scheduler::tests::test_handle_failure_no_retry ... ok
[INFO] [stdout] test scheduler::tests::test_non_leader_does_not_publish_the_windows ... ok
[INFO] [stdout] test scheduler::tests::test_max_in_flight_bounds_dispatch_and_refills_on_completion ... ok
[INFO] [stdout] test scheduler::tests::test_handle_results_batches_successes_in_order ... ok
[INFO] [stdout] test scheduler::tests::test_outcomes_carry_measured_wall_time ... ok
[INFO] [stdout] test scheduler::tests::test_per_task_cap_does_not_block_other_tasks ... ok
[INFO] [stdout] test scheduler::tests::test_per_task_in_flight_cap_rejects_and_reschedules ... ok
[INFO] [stdout] test scheduler::tests::test_recover_orphaned_jobs_dead_letters_when_exhausted ... ok
[INFO] [stdout] test scheduler::tests::test_in_flight_settled_tracks_dispatch_lifecycle ... ok
[INFO] [stdout] test scheduler::tests::test_reap_stale_jobs ... ok
[INFO] [stdout] test scheduler::tests::test_recover_orphaned_jobs_skips_own_claims ... ok
[INFO] [stdout] test scheduler::tests::test_recover_orphaned_jobs_requeues_dead_worker_job ... ok
[INFO] [stdout] test settings::tests::ordinary_keys_are_not ... ok
[INFO] [stdout] test settings::tests::runtime_owned_namespaces_are_reserved ... ok
[INFO] [stdout] test storage::cursor::tests::next_cursor_is_none_on_a_short_page ... ok
[INFO] [stdout] test storage::cursor::tests::next_cursor_is_none_on_an_empty_page ... ok
[INFO] [stdout] test storage::cursor::tests::next_cursor_points_at_the_last_row_of_a_full_page ... ok
[INFO] [stdout] test storage::cursor::tests::rejects_malformed ... ok
[INFO] [stdout] test storage::cursor::tests::round_trips ... ok
[INFO] [stdout] test storage::diesel_common::purge::tests::a_single_short_batch_ends_the_sweep ... ok
[INFO] [stdout] test storage::diesel_common::purge::tests::drains_until_a_short_batch ... ok
[INFO] [stdout] test scheduler::tests::test_retry_budget_marks_why_it_dead_lettered ... ok
[INFO] [stdout] test storage::diesel_common::purge::tests::propagates_a_batch_error ... ok
[INFO] [stdout] test scheduler::tests::test_retry_budget_is_per_task ... ok
[INFO] [stdout] test storage::diesel_common::purge::tests::stops_at_the_sweep_cap ... ok
[INFO] [stdout] test scheduler::tests::test_release_in_flight_frees_per_task_slot ... ok
[INFO] [stdout] test scheduler::tests::test_retry_budget_dead_letters_once_exhausted ... ok
[INFO] [stdout] test scheduler::tests::test_try_dispatch_circuit_broken ... ok
[INFO] [stdout] test scheduler::tests::test_retry_budget_not_spent_by_jobs_that_cannot_retry ... ok
[INFO] [stdout] test storage::migrate::tests::m0003_renders_partial_indexes_on_both_backends ... ok
[INFO] [stdout] test scheduler::tests::test_try_dispatch_per_queue_concurrency_allows_exactly_max ... ok
[INFO] [stdout] test storage::migrate::tests::raw_ddl_passes_sql_through_verbatim ... ok
[INFO] [stdout] test storage::migrations::m0004_postgres_tuning::tests::tunes_postgres_and_is_a_noop_on_sqlite ... ok
[INFO] [stdout] test storage::records::tests::unrecognized_stored_values_read_as_the_default ... ok
[INFO] [stdout] test storage::records::tests::worker_status_round_trips_its_stored_form ... ok
[INFO] [stdout] test storage::records::tests::subscription_mode_round_trips_its_stored_form ... ok
[INFO] [stdout] test scheduler::tests::test_tick_dispatches_and_maintains ... ok
[INFO] [stdout] test scheduler::tests::test_try_dispatch_per_task_concurrency_allows_exactly_max ... ok
[INFO] [stdout] test scheduler::tests::test_try_dispatch_per_task_max_one_dispatches_one ... ok
[INFO] [stdout] test scheduler::tests::test_try_dispatch_rate_limited ... ok
[INFO] [stdout] test scheduler::tests::test_try_dispatch_skips_when_channel_full ... ok
[INFO] [stdout] test scheduler::tests::test_try_dispatch_reschedules_on_closed_channel ... ok
[INFO] [stdout] test storage::migrate::tests::fresh_db_applies_all_migrations_and_is_idempotent ... ok
[INFO] [stdout] test scheduler::tests::test_two_default_schedulers_do_not_both_lead_retention ... ok
[INFO] [stdout] test storage::election_tests::try_lead_renews_its_own_live_lock ... ok
[INFO] [stdout] test storage::election_tests::try_lead_refuses_a_lock_held_by_another ... ok
[INFO] [stdout] test storage::migrate::tests::existing_partial_db_gets_missing_columns ... ok
[INFO] [stdout] test scheduler::tests::test_unmeasured_result_reports_zero_wall_time ... ok
[INFO] [stdout] test storage::election_tests::try_lead_takes_an_expired_lock ... ok
[INFO] [stdout] test storage::election_tests::try_lead_takes_a_free_lock ... ok
[INFO] [stdout] test storage::sqlite::tests::test_cancel_job ... ok
[INFO] [stdout] test storage::sqlite::tests::test_cancel_pending_archives_job ... ok
[INFO] [stdout] test storage::sqlite::tests::test_cascade_cancel_on_job_cancel ... ok
[INFO] [stdout] test storage::sqlite::tests::test_cascade_cancel_on_dlq ... ok
[INFO] [stdout] test storage::sqlite::tests::test_complete_archives_job ... ok
[INFO] [stdout] test storage::sqlite::tests::test_complete ... ok
[INFO] [stdout] test storage::sqlite::tests::test_complete_moves_to_archived_immediately ... ok
[INFO] [stdout] test storage::sqlite::tests::test_count_running_by_task ... ok
[INFO] [stdout] test storage::sqlite::tests::test_count_expired_rows_empty_store_is_zero ... ok
[INFO] [stdout] test storage::sqlite::tests::test_count_pending_by_queue ... ok
[INFO] [stdout] test storage::sqlite::tests::test_delete_dead_nonexistent ... ok
[INFO] [stdout] test storage::sqlite::tests::test_delete_dead_existing ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_batch_archives_expired ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dead_letter_queue ... ok
[INFO] [stdout] test storage::sqlite::tests::test_count_expired_rows_matches_purge_exactly ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_batch_no_double_claim ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_batch_respects_available ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_batch_claims_n ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_batch_empty_and_zero_max ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_batch_from_across_queues ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_batch_returns_full_payload ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_blocks_on_unmet_dependency ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_lifo_priority_still_dominates ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_returns_full_payload ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_batch ... ok
[INFO] [stdout] test storage::sqlite::tests::test_cancel_pending_by_queue_drains_across_batches ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_respects_schedule ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_and_get ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dequeue_lifo_vs_fifo_order ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_rejects_missing_dependency ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_batch_dedup_is_atomic ... ok
[INFO] [stdout] test storage::sqlite::tests::test_dlq_retry_count_round_trip ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_batch_crosses_chunk_boundary ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_stores_payload_inline ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_unique_after_dup_completes ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_unique_rejects_dead_dependency ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_with_dependency ... ok
[INFO] [stdout] test storage::sqlite::tests::test_enqueue_unique_rejects_missing_dependency ... ok
[INFO] [stdout] test storage::sqlite::tests::test_fail_and_retry ... ok
[INFO] [stdout] test storage::sqlite::tests::test_fail_and_cancel_archive_immediately ... ok
[INFO] [stdout] test storage::sqlite::tests::test_get_job_finds_archived ... ok
[INFO] [stdout] test storage::sqlite::tests::test_get_job_returns_payload_and_result ... ok
[INFO] [stdout] test storage::sqlite::tests::test_job_errors_empty_for_success ... ok
[INFO] [stdout] test storage::sqlite::tests::test_has_deps_flag_gates_dequeue ... ok
[INFO] [stdout] test storage::sqlite::tests::test_list_dead_for_retry ... ok
[INFO] [stdout] test storage::sqlite::tests::test_list_jobs_terminal_status_reads_archive ... ok
[INFO] [stdout] test storage::sqlite::tests::test_list_live_worker_ids_filters_stale ... ok
[INFO] [stdout] test storage::sqlite::tests::test_metadata_survives_dlq_round_trip ... ok
[INFO] [stdout] test storage::sqlite::tests::test_notes_survive_dlq_round_trip ... ok
[INFO] [stdout] test storage::sqlite::tests::test_list_subscriptions_for_topic_active_only_in_order ... ok
[INFO] [stdout] test storage::sqlite::tests::test_periodic_pause_resume_and_delete ... ok
[INFO] [stdout] test storage::sqlite::tests::test_notes_round_trip ... ok
[INFO] [stdout] test storage::sqlite::tests::test_priority_ordering ... ok
[INFO] [stdout] test storage::sqlite::tests::test_new_indexes_present ... ok
[INFO] [stdout] test storage::sqlite::tests::test_progress_tracking ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_completed_with_ttl_covers_non_complete_statuses ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_completed_respects_per_job_ttl ... ok
[INFO] [stdout] test storage::sqlite::tests::test_reap_ephemeral_subscriptions_spares_durable_and_live ... ok
[INFO] [stdout] test storage::sqlite::tests::test_reap_dead_workers_removes_stale_keeps_fresh ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_job_errors ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_dead_with_ttl_per_entry ... ok
[INFO] [stdout] test storage::sqlite::tests::test_reap_if_leader_only_leader_reaps_and_gets_ids ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_dead_with_ttl_global ... ok
[INFO] [stdout] test storage::sqlite::tests::test_register_subscription_is_idempotent_upsert ... ok
[INFO] [stdout] test storage::sqlite::tests::test_record_and_get_job_errors ... ok
[INFO] [stdout] test storage::sqlite::tests::test_reap_stale_jobs_only_returns_expired ... ok
[INFO] [stdout] test storage::sqlite::tests::test_reschedule_preserves_retry_count ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_job_errors_drains_across_batches ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_task_logs_drains_across_batches ... ok
[INFO] [stdout] test storage::sqlite::tests::test_setting_cas_creates_only_when_unset ... ok
[INFO] [stdout] test storage::sqlite::tests::test_setting_cas_on_a_missing_key_expecting_a_value_fails ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_metrics_drains_across_batches ... ok
[INFO] [stdout] test storage::sqlite::tests::test_retry_dead_missing_id_returns_not_found ... ok
[INFO] [stdout] test storage::sqlite::tests::test_set_subscription_active_pause_resume_roundtrip ... ok
[INFO] [stdout] test storage::sqlite::tests::test_retry_dead ... ok
[INFO] [stdout] test storage::sqlite::tests::test_retry_reschedule ... ok
[INFO] [stdout] test worker::auth::tests::a_differing_byte_or_length_does_not_match ... ok
[INFO] [stdout] test worker::auth::tests::a_secret_round_trips_as_a_plain_json_string ... ok
[INFO] [stdout] test worker::auth::tests::length_counts_characters ... ok
[INFO] [stdout] test worker::auth::tests::matching_secrets_compare_equal ... ok
[INFO] [stdout] test worker::auth::tests::the_value_never_reaches_a_formatter ... ok
[INFO] [stdout] test worker::cancel::tests::a_detached_signal_is_observed_without_storage ... ok
[INFO] [stdout] test storage::sqlite::tests::test_setting_delete ... ok
[INFO] [stdout] test worker::cancel::tests::an_unknown_job_is_not_cancelled ... ok
[INFO] [stdout] test storage::sqlite::tests::test_setting_get_returns_none_when_unset ... ok
[INFO] [stdout] test worker::dial::tests::a_bare_port_means_loopback ... ok
[INFO] [stdout] test worker::dial::tests::a_dialed_address_round_trips_through_a_real_listener ... ok
[INFO] [stdout] test worker::dial::tests::a_host_and_port_parses_as_tcp ... ok
[INFO] [stdout] test worker::dial::tests::a_unix_path_parses_and_prints_back ... ok
[INFO] [stdout] test worker::dial::tests::a_unix_scheme_without_a_path_is_rejected ... ok
[INFO] [stdout] test worker::dial::tests::an_address_without_a_port_is_rejected_with_the_shape_it_wanted ... ok
[INFO] [stdout] test worker::dial::tests::an_empty_address_is_rejected ... ok
[INFO] [stdout] test worker::dial::tests::connecting_to_a_closed_port_fails_rather_than_hanging ... ok
[INFO] [stdout] test worker::dial::tests::surrounding_whitespace_is_ignored ... ok
[INFO] [stdout] test worker::dial::tests::the_tcp_scheme_the_listener_prints_is_accepted ... ok
[INFO] [stdout] test worker::protocol::tests::a_cancellation_round_trips ... ok
[INFO] [stdout] test worker::protocol::tests::a_dispatch_carries_the_toggles_the_scheduler_resolved ... ok
[INFO] [stdout] test worker::protocol::tests::a_failure_round_trips_with_its_verdict_intact ... ok
[INFO] [stdout] test worker::protocol::tests::a_header_without_a_type_tag_is_an_error_rather_than_a_skip ... ok
[INFO] [stdout] test worker::protocol::tests::a_hello_token_round_trips_but_never_prints ... ok
[INFO] [stdout] test worker::cancel::tests::forgetting_a_job_clears_its_signal ... ok
[INFO] [stdout] test worker::protocol::tests::a_job_survives_a_round_trip_through_a_frame ... ok
[INFO] [stdout] test worker::protocol::tests::a_hello_without_a_token_stays_off_the_wire_and_parses_back ... ok
[INFO] [stdout] test worker::protocol::tests::a_log_without_extra_is_distinct_from_one_with_empty_extra ... ok
[INFO] [stdout] test worker::protocol::tests::a_result_survives_a_round_trip_through_a_frame ... ok
[INFO] [stdout] test worker::protocol::tests::an_unknown_frame_declaring_a_legacy_length_field_is_still_skipped ... ok
[INFO] [stdout] test worker::protocol::tests::an_unknown_frame_is_skipped_and_the_next_one_still_reads ... ok
[INFO] [stdout] test worker::protocol::tests::control_frames_describe_no_job ... ok
[INFO] [stdout] test worker::protocol::tests::control_frames_round_trip ... ok
[INFO] [stdout] test worker::protocol::tests::declared_length_must_match_the_payload ... ok
[INFO] [stdout] test worker::protocol::tests::empty_result_is_distinct_from_no_result ... ok
[INFO] [stdout] test worker::protocol::tests::every_frame_reports_its_own_wire_type_as_known ... ok
[INFO] [stdout] test worker::protocol::tests::frames_from_a_peer_that_predates_the_side_channel_still_parse ... ok
[INFO] [stdout] test worker::protocol::tests::handshake_frames_round_trip ... ok
[INFO] [stdout] test worker::protocol::tests::job_frame_carries_payload_bytes_verbatim ... ok
[INFO] [stdout] test worker::protocol::tests::malformed_header_is_reported_as_json_error ... ok
[INFO] [stdout] test worker::protocol::tests::non_result_frames_produce_no_job_result ... ok
[INFO] [stdout] test worker::protocol::tests::oversized_header_is_rejected ... ok
[INFO] [stdout] test worker::protocol::tests::oversized_payload_is_rejected_before_allocating ... ok
[INFO] [stdout] test worker::protocol::tests::result_frames_map_onto_job_results ... ok
[INFO] [stdout] test worker::protocol::tests::side_channel_frames_round_trip_and_are_never_results ... ok
[INFO] [stdout] test worker::protocol::tests::truncated_header_is_an_io_error_not_an_oversized_header ... ok
[INFO] [stdout] test worker::protocol::tests::truncated_payload_is_an_error_not_a_clean_eof ... ok
[INFO] [stdout] test worker::protocol::tests::a_known_frame_type_that_will_not_parse_is_still_an_error ... ok
[INFO] [stdout] test storage::sqlite::tests::test_setting_list_returns_all ... ok
[INFO] [stdout] test storage::sqlite::tests::test_setting_cas_writes_only_on_the_expected_value ... ok
[INFO] [stdout] test storage::sqlite::tests::test_setting_preserves_unicode_and_json ... ok
[INFO] [stdout] test storage::sqlite::tests::test_setting_set_and_get ... ok
[INFO] [stdout] test worker::transport::tests::dropping_the_writer_signals_eof ... ok
[INFO] [stdout] test worker::side_channel::tests::the_toggle_key_matches_what_a_dashboard_writes ... ok
[INFO] [stdout] test worker::transport::tests::memory_pair_carries_bytes_both_ways ... ok
[INFO] [stdout] test worker::transport::tests::read_timeout_applies_and_clears_after_the_split ... ok
[INFO] [stdout] test storage::sqlite::tests::test_setting_set_overwrites ... ok
[INFO] [stdout] test storage::sqlite::tests::test_sweep_ephemeral_subscriptions_election_and_unconditional ... ok
[INFO] [stdout] test storage::sqlite::tests::test_stats ... ok
[INFO] [stdout] test storage::sqlite::tests::test_unsubscribe_unknown_returns_false ... ok
[INFO] [stdout] test storage::sqlite::tests::test_unique_key_dedup ... ok
[INFO] [stdout] test worker::cancel::tests::a_storage_flag_is_honoured_too ... ok
[INFO] [stdout] test storage::sqlite::tests::test_stats_counts_archived_terminals ... ok
[INFO] [stdout] test worker::side_channel::tests::a_stored_toggle_list_is_decoded_and_then_cached ... ok
[INFO] [stdout] test worker::side_channel::tests::a_malformed_toggle_list_disables_nothing ... ok
[INFO] [stdout] test worker::side_channel::tests::an_unset_toggle_list_is_empty_rather_than_an_error ... ok
[INFO] [stdout] test worker::side_channel::tests::progress_outside_the_documented_range_is_dropped ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_dead_with_ttl_drains_across_batches ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_dead_drains_across_batches ... ok
[INFO] [stdout] test storage::sqlite::tests::test_purge_completed_drains_across_batches ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 263 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.35s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/attach_auth.rs (/opt/rustwide/target/debug/build/taskito-core/213ccc0154c9d6fa/out/attach_auth-213ccc0154c9d6fa)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test a_missing_token_is_refused ... ok
[INFO] [stdout] test a_valid_token_does_not_bypass_the_version_check ... ok
[INFO] [stdout] test a_dispatcher_without_a_token_ignores_one ... ok
[INFO] [stdout] test the_configured_token_attaches ... ok
[INFO] [stdout] test a_wrong_token_is_refused_without_an_ack ... ok
[INFO] [stdout] test a_refused_peer_is_never_dispatched_a_job ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stderr]      Running tests/namespace_scoping.rs (/opt/rustwide/target/debug/build/taskito-core/482c9406c663e350/out/namespace_scoping-482c9406c663e350)
[INFO] [stdout] test a_job_from_another_namespace_reads_as_missing ... ok
[INFO] [stdout] test an_archived_job_from_another_namespace_reads_as_missing ... ok
[INFO] [stdout] test a_job_from_another_namespace_cannot_be_retried ... ok
[INFO] [stdout] test a_job_from_another_namespace_cannot_be_cancelled ... ok
[INFO] [stdout] test a_batch_completion_stops_at_the_namespace_boundary ... ok
[INFO] [stdout] test a_cascade_cancel_reaches_every_dependent_it_can_see ... ok
[INFO] [stdout] test a_dependency_may_not_cross_the_namespace_boundary ... ok
[INFO] [stdout] test an_error_is_not_recorded_across_the_namespace_boundary ... ok
[INFO] [stdout] test a_batched_job_still_waits_for_its_dependencies ... ok
[INFO] [stdout] test a_row_written_before_namespaces_is_invisible_to_a_scoped_read ... ok
[INFO] [stdout] test a_running_job_from_another_namespace_cannot_be_cancel_requested ... ok
[INFO] [stdout] test a_dead_letter_id_from_another_namespace_reads_as_missing ... ok
[INFO] [stdout] test a_running_job_from_another_namespace_cannot_be_marked_cancelled ... ok
[INFO] [stdout] test a_scheduler_never_reaps_another_namespaces_job ... ok
[INFO] [stdout] test an_execution_claim_is_not_released_across_the_namespace_boundary ... ok
[INFO] [stdout] test a_running_job_from_another_namespace_cannot_be_completed ... ok
[INFO] [stdout] test metrics_are_scoped_per_namespace ... ok
[INFO] [stdout] test dead_letters_are_scoped_and_unscoped_sees_both ... ok
[INFO] [stdout] test archived_listings_are_scoped ... ok
[INFO] [stdout] test dependency_edges_are_scoped_by_their_anchor_job ... ok
[INFO] [stdout] test the_per_task_concurrency_count_is_scoped ... ok
[INFO] [stdout] test dead_letter_pagination_and_task_filter_are_scoped ... ok
[INFO] [stdout] test task_logs_are_scoped_per_namespace ... ok
[INFO] [stdout] test progress_cannot_be_written_across_the_boundary ... ok
[INFO] [stdout] test stats_are_scoped_per_namespace ... ok
[INFO] [stdout] test job_errors_and_logs_are_scoped_by_their_job ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.80s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rust.rs (/opt/rustwide/target/debug/build/taskito-core/ca6c1fc2a34d134a/out/rust-ca6c1fc2a34d134a)
[INFO] [stdout] 
[INFO] [stdout] running 62 tests
[INFO] [stdout] test rust::executor_tests::a_missing_token_is_reported_as_a_refusal ... ok
[INFO] [stdout] test rust::executor_tests::a_frame_from_a_newer_executor_is_ignored_rather_than_abandoning_the_attach ... ok
[INFO] [stdout] test rust::executor_tests::a_job_arriving_after_the_drain_is_declined_retryably ... ok
[INFO] [stdout] test rust::executor_tests::a_full_outbound_queue_coalesces_progress_and_sheds_the_oldest_logs ... ok
[INFO] [stdout] test rust::executor_tests::a_non_retryable_failure_stays_non_retryable ... ok
[INFO] [stdout] test rust::executor_tests::a_declined_job_releases_the_toggle_list_it_arrived_with ... ok
[INFO] [stdout] test rust::executor_tests::a_wrong_token_is_reported_as_a_refusal ... ok
[INFO] [stdout] test rust::executor_tests::a_result_never_overtakes_what_the_task_already_reported ... ok
[INFO] [stdout] test rust::executor_tests::a_dispatched_toggle_list_is_readable_until_the_job_reports ... ok
[INFO] [stdout] test rust::executor_tests::a_job_runs_on_the_executor_and_its_result_comes_back ... ok
[INFO] [stdout] test rust::executor_tests::a_scheduler_that_advertised_nothing_is_never_sent_a_side_channel_frame ... ok
[INFO] [stdout] test rust::executor_tests::a_cancel_from_the_scheduler_reaches_the_pool ... ok
[INFO] [stdout] test rust::executor_tests::a_shutdown_frame_ends_the_session ... ok
[INFO] [stdout] test rust::executor_tests::a_task_returning_nothing_reports_no_result ... ok
[INFO] [stdout] test rust::executor_tests::an_empty_result_stays_distinct_from_no_result ... ok
[INFO] [stdout] test rust::executor_tests::free_capacity_falls_while_a_job_is_running ... ok
[INFO] [stdout] test rust::executor_tests::stop_finishes_in_flight_work_before_disconnecting ... ok
[INFO] [stdout] test rust::executor_tests::a_drain_announces_zero_capacity_before_anything_else ... ok
[INFO] [stdout] test rust::executor_tests::the_handshake_registers_the_executor_with_the_scheduler ... ok
[INFO] [stdout] test rust::executor_tests::a_frame_from_a_newer_scheduler_is_ignored_rather_than_ending_the_session ... ok
[INFO] [stdout] test rust::remote_tests::a_dispatch_carries_the_toggles_and_metadata_an_executor_cannot_read ... ok
[INFO] [stdout] test rust::executor_tests::progress_and_logs_reach_a_scheduler_that_advertised_the_side_channel ... ok
[INFO] [stdout] test rust::remote_tests::a_scheduler_without_storage_advertises_nothing ... ok
[INFO] [stdout] test rust::remote_tests::a_scheduler_with_storage_advertises_the_side_channel ... ok
[INFO] [stdout] test rust::executor_tests::a_task_failure_crosses_the_wire_with_its_retry_verdict ... ok
[INFO] [stdout] test rust::executor_tests::the_payload_reaches_the_pool_verbatim ... ok
[INFO] [stdout] test rust::executor_tests::a_local_stop_releases_a_parked_waiter ... ok
[INFO] [stdout] test rust::executor_tests::the_executor_detaches_from_the_scheduler_when_it_stops ... ok
[INFO] [stdout] test rust::remote_tests::attach_is_refused_once_shutdown_has_started ... ok
[INFO] [stdout] test rust::executor_tests::the_right_token_attaches ... ok
[INFO] [stdout] test rust::remote_tests::cancel_reaches_the_executor_running_the_job ... ok
[INFO] [stdout] test rust::remote_tests::duplicate_executor_id_is_rejected ... ok
[INFO] [stdout] test rust::remote_tests::dropping_a_dispatcher_that_never_ran_stops_the_drain_thread ... ok
[INFO] [stdout] test rust::remote_tests::handshake_registers_the_executor ... ok
[INFO] [stdout] test rust::remote_tests::an_empty_extra_is_stored_as_empty_rather_than_absent ... ok
[INFO] [stdout] test rust::executor_tests::a_cancel_for_an_unknown_job_is_harmless ... ok
[INFO] [stdout] test rust::remote_tests::an_executor_cannot_write_against_a_job_it_is_not_running ... ok
[INFO] [stdout] test rust::remote_tests::job_round_trips_to_an_executor_and_back ... ok
[INFO] [stdout] test rust::executor_tests::the_job_frame_carries_every_field_a_task_needs ... ok
[INFO] [stdout] test rust::executor_tests::a_flood_of_progress_neither_blocks_the_task_nor_grows_without_bound ... ok
[INFO] [stdout] test rust::remote_tests::version_mismatch_is_rejected_but_still_acked ... ok
[INFO] [stdout] test rust::remote_tests::resolving_toggles_does_not_stall_the_runtime_the_scheduler_shares ... ok
[INFO] [stdout] test rust::remote_tests::progress_and_logs_from_a_running_job_are_applied ... ok
[INFO] [stdout] test rust::executor_tests::wait_timeout_reports_a_session_that_is_still_open ... ok
[INFO] [stdout] test rust::remote_tests::heartbeat_can_shrink_capacity_but_not_invent_it ... ok
[INFO] [stdout] test rust::executor_tests::a_dead_peer_does_not_attach ... ok
[INFO] [stdout] test rust::remote_tests::unadvertised_task_is_never_sent_and_fails_retryably ... ok
[INFO] [stdout] test rust::executor_tests::a_garbled_ack_is_a_protocol_error ... ok
[INFO] [stdout] test rust::remote_tests::a_side_channel_frame_never_settles_the_job_it_names ... ok
[INFO] [stdout] test rust::remote_tests::a_jobs_final_progress_is_applied_before_its_result ... ok
[INFO] [stdout] test rust::remote_tests::shutdown_is_bounded_by_the_drain_budget ... ok
[INFO] [stdout] test rust::worker_tests::async_handler_executes ... ok
[INFO] [stdout] test rust::remote_tests::an_idle_executor_outlives_the_handshake_budget ... ok
[INFO] [stdout] test rust::worker_tests::fatal_failure_skips_retries ... ok
[INFO] [stdout] test rust::remote_tests::a_single_slot_admits_one_job_at_a_time ... ok
[INFO] [stdout] test rust::worker_tests::sync_handler_executes_and_stores_result ... ok
[INFO] [stdout] test rust::worker_tests::unregistered_task_dead_letters_without_retry ... ok
[INFO] [stdout] test rust::worker_tests::retryable_failure_retries_then_dead_letters ... ok
[INFO] [stdout] test rust::remote_tests::executor_drop_leaves_its_in_flight_job_to_the_reaper ... ok
[INFO] [stdout] test rust::storage_tests::sqlite_storage_tests ... ok
[INFO] [stdout] test rust::remote_tests::a_dropped_executor_leaves_its_job_for_the_scheduler_to_recover ... ok
[INFO] [stdout] test rust::executor_tests::shutdown_is_bounded_when_a_job_never_finishes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 62 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.32s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests taskito_core
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/worker/executor.rs - worker::executor (line 15) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 12) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623", kill_on_drop: false }`
[INFO] [stdout] e6bed33c7645090ea1bd974d1f0557fc7ce83fb043f2b90df8655d4be2000623
