You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Should there be a way for the client, where it finishes an encoding but recognizes an error, to have its error passed through hyper back to the caller of hyper?
It happens by way of a tonic test max_message_send_size that this line receives an error from the user of hyper but the error details are not propagated back to the user. Instead a generic "internal" error ends up being returned.
By dumping the Ready variable at this point, I see it is still
hyper::Error(
User(
Body,
),
Status {
code: OutOfRange,
message: "Error, encoded message length too large: found 4194309 bytes, the limit is: 1024 bytes",
source: None,
},
which shows the original source of the error hasn't been lost yet. But the value is dropped here
and somehow (the logic I haven't figured out yet) a generic internal error is returned to the caller.
There's a tonic issue about this, hyperium/tonic#1334 but it doesn't have more details.
This may be the relevant stack trace if someone wants to point me in a further direction.
5: hyper::proto::h2::client::ClientTask<B,E,T>::poll_pipe
at /home/ubuntu/main/hyper/src/proto/h2/client.rs:495:25
6: <hyper::proto::h2::client::ClientTask<B,E,T> as core::future::future::Future>::poll
at /home/ubuntu/main/hyper/src/proto/h2/client.rs:719:21
7: <hyper::client::conn::http2::Connection<T,B,E> as core::future::future::Future>::poll
at /home/ubuntu/main/hyper/src/client/conn/http2.rs:243:22
8: <transport::channel::service::connection::MakeSendRequestService<C> as tower_service::Service<http::uri::Uri>>::call::{{closure}}::{{closure}}
at /home/ubuntu/forks/tonic/transport/src/channel/service/connection.rs:197:42
I could be generating the same question from an unmodified tonic fork but this was an easier place to see if this outstanding tonic issue could be corrected.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Should there be a way for the client, where it finishes an encoding but recognizes an error, to have its error passed through
hyper
back to the caller ofhyper
?At
hyper/src/proto/h2/client.rs
Line 492 in 15cd6fa
It happens by way of a
tonic
testmax_message_send_size
that this line receives an error from the user ofhyper
but the error details are not propagated back to the user. Instead a generic "internal" error ends up being returned.By dumping the Ready variable at this point, I see it is still
which shows the original source of the error hasn't been lost yet. But the value is dropped here
and somehow (the logic I haven't figured out yet) a generic internal error is returned to the caller.
There's a tonic issue about this, hyperium/tonic#1334 but it doesn't have more details.
This may be the relevant stack trace if someone wants to point me in a further direction.
That 8th frame on the stack is actually my attempt at a clean transport forked from tonic/tonic/src/transport but the original would be this https://github.com/hyperium/tonic/blob/71fca362d7ffbb230547f23b3f2fb75c414063a8/tonic/src/transport/channel/service/connection.rs#L182-L202
I could be generating the same question from an unmodified tonic fork but this was an easier place to see if this outstanding tonic issue could be corrected.
One other comment, if it helps someone see what's going on better, here is the tonic code that is generating the error on the client side to begin with. There is the
Body::poll_frame
that is returning the error, and the true top source of the error, where thefinish_encoding
generates the error.https://github.com/hyperium/tonic/blob/71fca362d7ffbb230547f23b3f2fb75c414063a8/tonic/src/codec/encode.rs#L351
https://github.com/hyperium/tonic/blob/71fca362d7ffbb230547f23b3f2fb75c414063a8/tonic/src/codec/encode.rs#L240-L246
Beta Was this translation helpful? Give feedback.
All reactions