rootlesskit
rootlesskit copied to clipboard
[port-driver=builtin] intermittent error `dial unix /tmp/rootlesskit321516702/.bp.sock: connect: no such file or directory`
$ ntimes -n 100 rootlesskit --net=slirp4netns --port-driver=builtin --disable-host-loopback --copy-up=/etc true
[rootlesskit:parent] error: dial unix /tmp/rootlesskit321516702/.bp.sock: connect: no such file or directory
[rootlesskit:parent] error: write unix @->/tmp/rootlesskit633900245/.bp.sock: write: broken pipe
real average: 44.437026ms, max: 50.669863ms, min: 38.338228ms, std dev: 2.74521ms
real 99 percentile: 49.992721ms, 95 percentile: 49.258088ms, 50 percentile: 44.527035ms
user average: 27.04683ms, max: 47.821ms, min: 7.356ms, std dev: 8.180554ms
sys average: 28.9803ms, max: 45.081ms, min: 5.853ms, std dev: 8.180066ms
flaky: 2%
Flakiness is about 1-2% on my laptop, but seems about 10% on nerdctl CI.
RootlessKit: v0.14.0
This flakiness happens when defer os.RemoveAll() got called before go opt.PortDriver.RunParentDriver:
https://github.com/rootless-containers/rootlesskit/blob/v0.14.0/pkg/parent/parent.go#L133
https://github.com/rootless-containers/rootlesskit/blob/v0.14.0/pkg/parent/parent.go#L227-L230
Seems avoidable just by replacing true with sleep 1.