mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Don't log "p9.channel.service: flipcall connection shutdown".
This gets quite spammy, especially in tests. PiperOrigin-RevId: 277970468
This commit is contained in:
@@ -113,7 +113,7 @@ func (ep *Endpoint) enterFutexWait() error {
|
||||
return nil
|
||||
case epsBlocked | epsShutdown:
|
||||
atomic.AddInt32(&ep.ctrl.state, -epsBlocked)
|
||||
return shutdownError{}
|
||||
return ShutdownError{}
|
||||
default:
|
||||
// Most likely due to ep.enterFutexWait() being called concurrently
|
||||
// from multiple goroutines.
|
||||
|
||||
@@ -136,8 +136,8 @@ func (ep *Endpoint) unmapPacket() {
|
||||
|
||||
// Shutdown causes concurrent and future calls to ep.Connect(), ep.SendRecv(),
|
||||
// ep.RecvFirst(), and ep.SendLast(), as well as the same calls in the peer
|
||||
// Endpoint, to unblock and return errors. It does not wait for concurrent
|
||||
// calls to return. Successive calls to Shutdown have no effect.
|
||||
// Endpoint, to unblock and return ShutdownErrors. It does not wait for
|
||||
// concurrent calls to return. Successive calls to Shutdown have no effect.
|
||||
//
|
||||
// Shutdown is the only Endpoint method that may be called concurrently with
|
||||
// other methods on the same Endpoint.
|
||||
@@ -154,10 +154,12 @@ func (ep *Endpoint) isShutdownLocally() bool {
|
||||
return atomic.LoadUint32(&ep.shutdown) != 0
|
||||
}
|
||||
|
||||
type shutdownError struct{}
|
||||
// ShutdownError is returned by most Endpoint methods after Endpoint.Shutdown()
|
||||
// has been called.
|
||||
type ShutdownError struct{}
|
||||
|
||||
// Error implements error.Error.
|
||||
func (shutdownError) Error() string {
|
||||
func (ShutdownError) Error() string {
|
||||
return "flipcall connection shutdown"
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ func (ep *Endpoint) futexSwitchToPeer() error {
|
||||
if !atomic.CompareAndSwapUint32(ep.connState(), ep.activeState, ep.inactiveState) {
|
||||
switch cs := atomic.LoadUint32(ep.connState()); cs {
|
||||
case csShutdown:
|
||||
return shutdownError{}
|
||||
return ShutdownError{}
|
||||
default:
|
||||
return fmt.Errorf("unexpected connection state before FUTEX_WAKE: %v", cs)
|
||||
}
|
||||
@@ -81,14 +81,14 @@ func (ep *Endpoint) futexSwitchFromPeer() error {
|
||||
return nil
|
||||
case ep.inactiveState:
|
||||
if ep.isShutdownLocally() {
|
||||
return shutdownError{}
|
||||
return ShutdownError{}
|
||||
}
|
||||
if err := ep.futexWaitConnState(ep.inactiveState); err != nil {
|
||||
return fmt.Errorf("failed to FUTEX_WAIT for peer Endpoint: %v", err)
|
||||
}
|
||||
continue
|
||||
case csShutdown:
|
||||
return shutdownError{}
|
||||
return ShutdownError{}
|
||||
default:
|
||||
return fmt.Errorf("unexpected connection state before FUTEX_WAIT: %v", cs)
|
||||
}
|
||||
|
||||
+5
-1
@@ -453,7 +453,11 @@ func (cs *connState) initializeChannels() (err error) {
|
||||
go func() { // S/R-SAFE: Server side.
|
||||
defer cs.channelWg.Done()
|
||||
if err := res.service(cs); err != nil {
|
||||
log.Warningf("p9.channel.service: %v", err)
|
||||
// Don't log flipcall.ShutdownErrors, which we expect to be
|
||||
// returned during server shutdown.
|
||||
if _, ok := err.(flipcall.ShutdownError); !ok {
|
||||
log.Warningf("p9.channel.service: %v", err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user