Open
Description
I've put a repro at https://github.com/illicitonion/grpc-rs-repro-0 which uses the proto from https://github.com/googleapis/googleapis/blob/master/google/bytestream/bytestream.proto
The call to call_sync, which doesn't move the stream out of the function, reliably works.
The call to call_future, which Boxes the stream, either gives me:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "RpcFailure(RpcStatus { status: Unknown, details: Some(\"Failed to create subchannel\") })"', src/libcore/result.rs:860:4
stack backtrace:
0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
1: std::panicking::default_hook::{{closure}}
2: std::panicking::default_hook
3: std::panicking::rust_panic_with_hook
4: std::panicking::begin_panic_new
5: std::panicking::begin_panic_fmt
6: rust_begin_unwind
7: core::panicking::panic_fmt
8: core::result::unwrap_failed
9: <core::result::Result<T, E>>::unwrap
10: grpcrepro::main
11: __rust_maybe_catch_panic
12: std::rt::lang_start
13: main
or
E1201 22:37:55.116403000 140735833875264 call.c:1731] assertion failed: grpc_cq_begin_op(call->cq, notify_tag)
Abort trap: 6
I believe both should be safe, and it's possible that the Stream being produced by the client isn't properly owning all of the state it needs.