Skip to content

Commit 16ed51d

Browse files
committed
libnetwork/networkdb: always shut down memberlist
Gracefully leaving the memberlist cluster is a best-effort operation. Failing to successfully broadcast the leave message to a peer should not prevent NetworkDB from cleaning up the memberlist instance on close. But that was not the case in practice. Log the error returned from (*memberlist.Memberlist).Leave instead of returning it and proceed with shutting down irrespective of whether Leave() returns an error. Signed-off-by: Cory Snider <[email protected]>
1 parent cee6f64 commit 16ed51d

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

libnetwork/networkdb/cluster.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,11 @@ func (nDB *NetworkDB) clusterLeave() error {
224224
mlist := nDB.memberlist
225225

226226
if err := nDB.sendNodeEvent(NodeEventTypeLeave); err != nil {
227-
log.G(context.TODO()).Errorf("failed to send node leave: %v", err)
227+
log.G(context.TODO()).WithError(err).Error("failed to send node leave event")
228228
}
229229

230230
if err := mlist.Leave(time.Second); err != nil {
231-
return err
231+
log.G(context.TODO()).WithError(err).Error("failed to broadcast memberlist leave message")
232232
}
233233

234234
// cancel the context

0 commit comments

Comments
 (0)