libOpenflow icon indicating copy to clipboard operation
libOpenflow copied to clipboard

dead lock or lost message when ovs is unstable

Open 1071496910 opened this issue 5 years ago • 1 comments

this function will lost message or make block if the connection of ovs is closing.

// Listen for a Shutdown signal or Outbound messages. func (m *MessageStream) outbound() { for { select { case <-m.Shutdown: log.Infof("Closing OpenFlow message stream.") m.conn.Close() for i := 0; i < numParserGoroutines; i++ { m.parserShutdown <- true } return case msg := <-m.Outbound: // Forward outbound messages to conn data, _ := msg.MarshalBinary() if _, err := m.conn.Write(data); err != nil { log.Warnln("OutboundError:", err) m.Error <- err m.Shutdown <- true } log.Debugf("Sent(%d): %v", len(data), data) } } }

1071496910 avatar Jul 10 '20 07:07 1071496910

dead lock for m.Shutdown

jesson1 avatar Apr 25 '24 04:04 jesson1