From fc2a8fe13bc8c33a506a82b8475a405ff849db05 Mon Sep 17 00:00:00 2001 From: Kang Chen Date: Fri, 20 May 2022 14:33:59 +0800 Subject: [PATCH] libct/cg/sd: check dbus.ErrClosed instead of isDbusError Signed-off-by: Kang Chen (cherry picked from commit 0ca0bb9feeaa88b80d0f95a554a5fe02d97b75d5) Signed-off-by: Kir Kolyshkin --- libcontainer/cgroups/systemd/dbus.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libcontainer/cgroups/systemd/dbus.go b/libcontainer/cgroups/systemd/dbus.go index 3e547e282b5..bb87ae83aef 100644 --- a/libcontainer/cgroups/systemd/dbus.go +++ b/libcontainer/cgroups/systemd/dbus.go @@ -2,6 +2,7 @@ package systemd import ( "context" + "errors" "fmt" "sync" @@ -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. @@ -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)