mirror of
https://github.com/hanzoai/visor.git
synced 2026-09-24 17:04:14 +00:00
runsc/cgroup: don't no-op cgroupSystemd.Join() if unit exists
Note that although dbus.Conn.AttachProcessesToUnit() was added in v22.6.0 (2025: https://pkg.go.dev/github.com/coreos/go-systemd/v22/dbus?tab=versions), the underlying systemd call was added in v238 (2018: https://lists.freedesktop.org/archives/systemd-devel/2018-March/040469.html). PiperOrigin-RevId: 827720583
This commit is contained in:
@@ -15,7 +15,7 @@ require (
|
||||
github.com/containerd/go-runc v1.0.0
|
||||
github.com/containerd/log v0.1.0
|
||||
github.com/containerd/typeurl v1.0.2
|
||||
github.com/coreos/go-systemd/v22 v22.5.0
|
||||
github.com/coreos/go-systemd/v22 v22.6.0
|
||||
github.com/godbus/dbus/v5 v5.1.0
|
||||
github.com/gofrs/flock v0.8.0
|
||||
github.com/gogo/protobuf v1.3.2
|
||||
|
||||
@@ -234,6 +234,8 @@ github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+
|
||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
|
||||
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/coreos/go-systemd/v22 v22.6.0 h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo=
|
||||
github.com/coreos/go-systemd/v22 v22.6.0/go.mod h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU=
|
||||
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
|
||||
@@ -182,6 +182,9 @@ func (c *cgroupSystemd) Join() (func(), error) {
|
||||
return nil, fmt.Errorf("unknown job completion status %q", s)
|
||||
}
|
||||
} else if unitAlreadyExists(err) {
|
||||
if err := c.dbusConn.AttachProcessesToUnit(timedCtx, unitName, "" /* subcgroup */, []uint32{uint32(os.Getpid())}); err != nil {
|
||||
return nil, fmt.Errorf("error joining systemd unit `%s`: %w", unitName, err)
|
||||
}
|
||||
return clean.Release(), nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("systemd error: %v", err)
|
||||
|
||||
Reference in New Issue
Block a user