mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 14:13:58 +08:00
Merge pull request #2997 from kolyshkin/fix-dbus-err
[rc94 regression] libct/cg/sd: fix dbus error handling
This commit is contained in:
@@ -313,7 +313,7 @@ func getUnitName(c *configs.Cgroup) string {
|
||||
// isDbusError returns true if the error is a specific dbus error.
|
||||
func isDbusError(err error, name string) bool {
|
||||
if err != nil {
|
||||
var derr *dbus.Error
|
||||
var derr dbus.Error
|
||||
if errors.As(err, &derr) {
|
||||
return strings.Contains(derr.Name, name)
|
||||
}
|
||||
|
||||
@@ -168,3 +168,28 @@ func TestSkipDevicesFalse(t *testing.T) {
|
||||
"cat: /dev/null: Operation not permitted",
|
||||
})
|
||||
}
|
||||
|
||||
func TestUnitExistsIgnored(t *testing.T) {
|
||||
if !IsRunningSystemd() {
|
||||
t.Skip("Test requires systemd.")
|
||||
}
|
||||
if os.Geteuid() != 0 {
|
||||
t.Skip("Test requires root.")
|
||||
}
|
||||
|
||||
podConfig := &configs.Cgroup{
|
||||
Parent: "system.slice",
|
||||
Name: "system-runc_test_exists.slice",
|
||||
Resources: &configs.Resources{},
|
||||
}
|
||||
// Create "pods" cgroup (a systemd slice to hold containers).
|
||||
pm := newManager(podConfig)
|
||||
defer pm.Destroy() //nolint:errcheck
|
||||
|
||||
// create twice to make sure "UnitExists" error is ignored.
|
||||
for i := 0; i < 2; i++ {
|
||||
if err := pm.Apply(-1); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user