Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rust v1.78.0 router-bridge startup panic #595

Open
robmarto opened this issue Dec 2, 2024 · 7 comments
Open

Rust v1.78.0 router-bridge startup panic #595

robmarto opened this issue Dec 2, 2024 · 7 comments

Comments

@robmarto
Copy link

robmarto commented Dec 2, 2024

apollographql/router#5084

Putting this here in case the issue is within this repo

Upgrading Rust Toolchain to 1.78.0 causes panic on startup in router-bridge for --release builds

Steps to reproduce the behavior:

  1. Upgrade Rust toolchain to 1.78.0
  2. Build and Start router with cargo run --release -- (env vars omitted)
  3. See error on startup

Output

2024-05-03T21:42:30.961533Z ERROR panicked at /Users/[redacted]/.cargo/registry/src/index.crates.io-6f17d22bba15001f/router-bridge-0.5.18+v2.7.2/src/worker.rs:101:38: called 'Result::unwrap()' on an 'Err' value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string at send (worker.js:54:25) at run (worker.js:171:19)

Desktop (please complete the following information):

OS: macOS / Linux
Version macOS 13.6.1 / public.ecr.aws/docker/library/rust:1.78.0

@duckki
Copy link

duckki commented Dec 2, 2024

Deno is known to have problems with Rust version above 1.76. So, any crates that use router-bridge are currently stuck with rustc 1.76.

@robmarto
Copy link
Author

robmarto commented Dec 2, 2024

Thanks for the reply @duckki, do you have an issue or source link for the problem?

This is concerning because cargo is starting to move past this version package cargo-platform v0.1.9 cannot be built because it requires rustc 1.78 or newer

@Dr-Emann
Copy link

Dr-Emann commented Dec 3, 2024

Deno itself seems to be developing with 1.82.0, at least: https://github.com/denoland/deno/blob/main/rust-toolchain.toml

So I'm interested in the issues deno has with 1.76+. I can't find anything on their issue tracker.

@Dr-Emann
Copy link

Dr-Emann commented Dec 3, 2024

This is also reproducible with cargo test --release in this repository directly:

cargo +1.77 test --package router-bridge --release -- --nocapture succeeds, but
cargo +1.78 test --package router-bridge --release -- --nocapture fails several tests (and then hangs on some tests) with:

    Finished `release` profile [optimized] target(s) in 51.99s
     Running unittests src/lib.rs (target/release/deps/router_bridge-7545c52dc1b62d78)

running 61 tests
test planner::error_display::error_on_core_in_v0_1_display ... ok
test planner::error_display::unsupported_feature_for_execution_display ... ok
test planner::error_display::unsupported_feature_for_security_display ... ok
thread 'planner::planning_error::deserialize_planning_error_missing_extension' panicked at router-bridge/src/planner.rs:1932:48:
called `Result::unwrap()` on an `Err` value: Error("missing field `extensions`", line: 1, column: 44)
thread 'planner::planning_error::deserialize_empty_planning_error' panicked at router-bridge/src/planner.rs:1923:48:
called `Result::unwrap()` on an `Err` value: Error("missing field `extensions`", line: 1, column: 2)
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: core::ops::function::FnOnce::call_once
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test planner::planning_error::deserialize_planning_error_missing_extension - should panic ... ok
test planner::planning_error::deserialize_planning_error_with_empty_object_extension ... ok
test introspect::tests::invalid_sdl ... ok
test planner::planning_error::deserialize_planning_error_with_extension ... ok
test planner::planning_error::deserialize_referenced_fields_for_type_defaults ... ok
test planner::planning_error::deserialize_planning_error_with_null_extension ... ok
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: core::ops::function::FnOnce::call_once
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test introspect::tests::missing_introspection_query ... ok
test planner::planning_error::deserialize_empty_planning_error - should panic ... ok
test planner::planning_error::deserialize_usage_reporting_with_defaults ... ok
test api_schema::tests::invalid_sdl ... ok
thread 'introspect::tests::defer_in_introspection' panicked at router-bridge/src/introspect.rs:292:10:
called `Result::unwrap()` on an `Err` value: DenoRuntime("unable to deserialize result of `do_introspect` in JavaScript runtime \n error: \n ExpectedObject(\"string\")")
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: router_bridge::introspect::tests::defer_in_introspection
   4: core::ops::function::FnOnce::call_once
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test introspect::tests::defer_in_introspection ... FAILED
thread 'introspect::tests::it_works' panicked at router-bridge/src/introspect.rs:123:10:
called `Result::unwrap()` on an `Err` value: DenoRuntime("unable to deserialize result of `do_introspect` in JavaScript runtime \n error: \n ExpectedObject(\"string\")")
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
   3: router_bridge::introspect::tests::it_works
   4: core::ops::function::FnOnce::call_once
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test introspect::tests::it_works ... FAILED
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'thread '<unnamed><unnamed>' panicked at ' panicked at router-bridge/src/worker.rsrouter-bridge/src/worker.rs::105:10538::
38called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test api_schema::tests::it_works ... ok
thread '<unnamed>' panicked at router-bridge/src/worker.rs:105:38:
called `Result::unwrap()` on an `Err` value: TypeError: Error parsing args at position 1: serde_v8 error: invalid type; expected: object, got: string
    at send (worker.js:58:25)
    at run (worker.js:186:19)

Stack backtrace:
   0: std::backtrace::Backtrace::create
   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   2: deno_core::error::exception_to_err_result
   3: deno_core::runtime::jsrealm::JsRealmInner::check_promise_rejections
   4: deno_core::runtime::jsruntime::JsRuntime::check_promise_rejections
   5: deno_core::runtime::jsruntime::JsRuntime::poll_event_loop
   6: <core::pin::Pin<P> as core::future::future::Future>::poll
   7: tokio::runtime::scheduler::current_thread::Context::enter
   8: tokio::runtime::context::set_scheduler
   9: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
  10: tokio::runtime::context::runtime::enter_runtime
  11: tokio::runtime::runtime::Runtime::block_on
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  14: std::sys::pal::unix::thread::Thread::new::thread_start
  15: __pthread_joiner_wake
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::result::unwrap_failed
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.




test planner::error_display::defer_query_plan has been running for over 60 seconds
test planner::error_display::defer_with_fragment has been running for over 60 seconds
test planner::error_display::extracts_cost_directives has been running for over 60 seconds
test planner::error_display::propagate_internal_qp_errors has been running for over 60 seconds
test planner::error_display::typed_condition_field_merging_disabled has been running for over 60 seconds
test planner::error_display::typed_condition_field_merging_enabled has been running for over 60 seconds
test planner::tests::anonymous_query_works has been running for over 60 seconds
test planner::tests::api_schema has been running for over 60 seconds
test planner::tests::error_on_core_in_v0_1 has been running for over 60 seconds
test planner::tests::generate_query_fragments_defaults_to_false has been running for over 60 seconds
test planner::tests::generate_query_fragments_explicit_false has been running for over 60 seconds
test planner::tests::generate_query_fragments_true has been running for over 60 seconds
test planner::tests::get_operation_signature has been running for over 60 seconds
test planner::tests::heap_statistics has been running for over 60 seconds

@duckki
Copy link

duckki commented Dec 4, 2024

The router team identified issues from binaries compiled with rustc version 1.77 or later. I don't know the details. But, the source of issue is presumed to be from deno. Though, it may not cause router-bridge testing itself to fail.

@robmarto It may be necessary to "pin" dependent packages to their older versions to build your projects. Several Apollo projects had to pin rowan to 0.15.15, for example.

@robmarto
Copy link
Author

robmarto commented Dec 4, 2024

Thanks @duckki. I have I've done this in the meantime to keep moving but its far from ideal, and is only a temporary solution which becomes less and less viable as time goes on IMO.

I do wonder if anyone is actually looking into this problem though? Has it even been raised with the Deno team?

@duckki
Copy link

duckki commented Dec 4, 2024

Yes, it's a temporary workaround. The router project is going to remove deno pretty soon. Then, we should be freed from this restriction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants