This repository was archived by the owner on Jan 19, 2026. It is now read-only.
Description Summary
58 out of 146 tests are failing with DeadlineExceeded. The root cause appears to be a handshake ordering violation.
Root Cause
From the test output, we can see the actual error:
ERROR rapace_core::session: RpcSession::run: handshake failed e=Status {
code: InvalidArgument,
message: "[verify handshake.ordering]: first frame must be on channel 0, got 1"
}
The client is sending a request frame on channel 1 before the handshake completes. The handshake requires the first frame to be a Hello on channel 0.
Affected Tests
All tests that use RpcSession::call() or streaming calls are affected:
rapace::arc_impl tests
rapace::result_return_type tests
rapace::method_ids_generation::test_end_to_end_with_method_ids
rapace-core::transport_conformance tests (mem_, shm_ , stream_*)
rapace-cell::dispatcher_builder::test_multi_service_dispatch_e2e
rapace-diagnostics-over-rapace tests
rapace-http-over-rapace tests
rapace-http-tunnel integration tests
rapace-template-engine tests
rapace-tracing-over-rapace tests
Likely Fix
The issue is probably in how RpcSession is being used - calls are being made before session.run() has completed the handshake. Either:
The client API needs to wait for handshake completion before allowing calls
The test setup needs to ensure handshake completes before making calls
There's a race condition in the session initialization
To Reproduce
cargo nextest run -p rapace arc_impl
Any test that makes RPC calls will fail with the same pattern.
Reactions are currently unavailable
Summary
58 out of 146 tests are failing with
DeadlineExceeded. The root cause appears to be a handshake ordering violation.Root Cause
From the test output, we can see the actual error:
The client is sending a request frame on channel 1 before the handshake completes. The handshake requires the first frame to be a Hello on channel 0.
Affected Tests
All tests that use
RpcSession::call()or streaming calls are affected:rapace::arc_impltestsrapace::result_return_typetestsrapace::method_ids_generation::test_end_to_end_with_method_idsrapace-core::transport_conformancetests (mem_, shm_, stream_*)rapace-cell::dispatcher_builder::test_multi_service_dispatch_e2erapace-diagnostics-over-rapacetestsrapace-http-over-rapacetestsrapace-http-tunnelintegration testsrapace-template-enginetestsrapace-tracing-over-rapacetestsLikely Fix
The issue is probably in how
RpcSessionis being used - calls are being made beforesession.run()has completed the handshake. Either:To Reproduce
Any test that makes RPC calls will fail with the same pattern.