Skip to content

runc create hung when apply systemd cgroup config when use godbus #321

@zvier

Description

@zvier

runc create hung when apply systemd cgroup config use godbus. We found the cause is
Object call CallWithContext method In object.go will wait for read <-o.createCall().Done channel.

dbus/object.go

Line 38 in fc37d31

func (o *Object) CallWithContext(ctx context.Context, method string, flags Flags, args ...interface{}) *Call {

If Conn's send method have no data write the above channel, Object.CallWithContext also will wait forever. Finally, runc create hungs and cause k8s node PLEG notready.

dbus/conn.go

Line 541 in fc37d31

if msg.Type == TypeMethodCall && msg.Flags&FlagNoReplyExpected == 0 {

Maybe it's better to set ch <- call according to if condition even if msg is not expected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions