Skip to content

Commit

Permalink
libct/cg/sd: check dbus.ErrClosed instead of isDbusError
Browse files Browse the repository at this point in the history
Signed-off-by: Kang Chen <kongchen28@gmail.com>
(cherry picked from commit 0ca0bb9)
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
  • Loading branch information
chenk008 authored and cyphar committed May 23, 2022
1 parent 13e164d commit fc2a8fe
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions libcontainer/cgroups/systemd/dbus.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package systemd

import (
"context"
"errors"
"fmt"
"sync"

Expand Down Expand Up @@ -80,8 +81,6 @@ func (d *dbusConnManager) resetConnection(conn *systemdDbus.Conn) {
}
}

var errDbusConnClosed = dbus.ErrClosed.Error()

// retryOnDisconnect calls op, and if the error it returns is about closed dbus
// connection, the connection is re-established and the op is retried. This helps
// with the situation when dbus is restarted and we have a stale connection.
Expand All @@ -92,7 +91,10 @@ func (d *dbusConnManager) retryOnDisconnect(op func(*systemdDbus.Conn) error) er
return err
}
err = op(conn)
if !isDbusError(err, errDbusConnClosed) {
if err == nil {
return nil
}
if !errors.Is(err, dbus.ErrClosed) {
return err
}
d.resetConnection(conn)
Expand Down

0 comments on commit fc2a8fe

Please sign in to comment.