@@ -305,13 +305,20 @@ async fn handle_request(
305305 if let Err ( x) = respond_with_status ( tx. clone ( ) , header. stream_id , status) . await {
306306 error ! ( "respond get error {:?}" , x) ;
307307 }
308+
309+ return ;
308310 }
309311 trace ! ( "Got Message request {:?}" , req) ;
310312
313+ let stream_id = header. stream_id ;
311314 let path = format ! ( "/{}/{}" , req. service, req. method) ;
312315 if let Some ( x) = methods. get ( & path) {
313316 let method = x;
314- let ctx = TtrpcContext { fd, mh : header, metadata : context:: from_pb ( & req. metadata ) } ;
317+ let ctx = TtrpcContext {
318+ fd,
319+ mh : header,
320+ metadata : context:: from_pb ( & req. metadata ) ,
321+ } ;
315322
316323 match method. handler ( ctx, req) . await {
317324 Ok ( ( stream_id, body) ) => {
@@ -321,6 +328,10 @@ async fn handle_request(
321328 }
322329 Err ( e) => {
323330 error ! ( "method handle {} get error {:?}" , path, e) ;
331+ let status = get_status ( Code :: UNKNOWN , e) ;
332+ if let Err ( e) = respond_with_status ( tx, stream_id, status) . await {
333+ error ! ( "respond get error {:?}" , e) ;
334+ }
324335 }
325336 }
326337 } else {
0 commit comments