mirror of https://github.com/grpc/grpc-go.git
				
				
				
			server: prevent hang in Go HTTP transport in some error cases (#3833)
This commit is contained in:
		
							parent
							
								
									b9bc8e75a6
								
							
						
					
					
						commit
						0e72e09474
					
				| 
						 | 
				
			
			@ -1156,10 +1156,8 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport.
 | 
			
		|||
	}
 | 
			
		||||
	d, err := recvAndDecompress(&parser{r: stream}, stream, dc, s.opts.maxReceiveMessageSize, payInfo, decomp)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if st, ok := status.FromError(err); ok {
 | 
			
		||||
			if e := t.WriteStatus(stream, st); e != nil {
 | 
			
		||||
				channelz.Warningf(logger, s.channelzID, "grpc: Server.processUnaryRPC failed to write status %v", e)
 | 
			
		||||
			}
 | 
			
		||||
		if e := t.WriteStatus(stream, status.Convert(err)); e != nil {
 | 
			
		||||
			channelz.Warningf(logger, s.channelzID, "grpc: Server.processUnaryRPC failed to write status %v", e)
 | 
			
		||||
		}
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue