mirror of https://github.com/grpc/grpc-go.git
				
				
				
			grpc: Log server trailers before writing status (#6076)
This commit is contained in:
		
							parent
							
								
									b9e6d59a1a
								
							
						
					
					
						commit
						cc320bf820
					
				| 
						 | 
				
			
			@ -1443,7 +1443,6 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport.
 | 
			
		|||
	// TODO: Should we be logging if writing status failed here, like above?
 | 
			
		||||
	// Should the logging be in WriteStatus?  Should we ignore the WriteStatus
 | 
			
		||||
	// error or allow the stats handler to see it?
 | 
			
		||||
	err = t.WriteStatus(stream, statusOK)
 | 
			
		||||
	if len(binlogs) != 0 {
 | 
			
		||||
		st := &binarylog.ServerTrailer{
 | 
			
		||||
			Trailer: stream.Trailer(),
 | 
			
		||||
| 
						 | 
				
			
			@ -1453,7 +1452,7 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport.
 | 
			
		|||
			binlog.Log(st)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return err
 | 
			
		||||
	return t.WriteStatus(stream, statusOK)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// chainStreamServerInterceptors chains all stream server interceptors into one.
 | 
			
		||||
| 
						 | 
				
			
			@ -1659,7 +1658,6 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp
 | 
			
		|||
			ss.trInfo.tr.SetError()
 | 
			
		||||
			ss.mu.Unlock()
 | 
			
		||||
		}
 | 
			
		||||
		t.WriteStatus(ss.s, appStatus)
 | 
			
		||||
		if len(ss.binlogs) != 0 {
 | 
			
		||||
			st := &binarylog.ServerTrailer{
 | 
			
		||||
				Trailer: ss.s.Trailer(),
 | 
			
		||||
| 
						 | 
				
			
			@ -1669,6 +1667,7 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp
 | 
			
		|||
				binlog.Log(st)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		t.WriteStatus(ss.s, appStatus)
 | 
			
		||||
		// TODO: Should we log an error from WriteStatus here and below?
 | 
			
		||||
		return appErr
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1677,7 +1676,6 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp
 | 
			
		|||
		ss.trInfo.tr.LazyLog(stringer("OK"), false)
 | 
			
		||||
		ss.mu.Unlock()
 | 
			
		||||
	}
 | 
			
		||||
	err = t.WriteStatus(ss.s, statusOK)
 | 
			
		||||
	if len(ss.binlogs) != 0 {
 | 
			
		||||
		st := &binarylog.ServerTrailer{
 | 
			
		||||
			Trailer: ss.s.Trailer(),
 | 
			
		||||
| 
						 | 
				
			
			@ -1687,7 +1685,7 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp
 | 
			
		|||
			binlog.Log(st)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return err
 | 
			
		||||
	return t.WriteStatus(ss.s, statusOK)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Stream, trInfo *traceInfo) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue