Skip to content

Make systemd socket activation actually work #93

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

smuething
Copy link

When trying socket activation for my Docker network plugin, I noticed
that the first request to the plugin never reached the plugin. As it
turns out, the relevant code for extracting the passed-in socket from
systemd never got called. I think this caused systemd to failover,
cede the socket and try running the plugin normally, but at that
point, docker already hangs.

Signed-off-by: Steffen Müthing [email protected]

When trying socket activation for my Docker network plugin, I noticed
that the first request to the plugin never reached the plugin. As it
turns out, the relevant code for extracting the passed-in socket from
systemd never got called. I think this caused systemd to failover,
cede the socket and try running the plugin normally, but at that
point, docker already hangs.

Signed-off-by: Steffen Müthing <[email protected]>
@florolf
Copy link

florolf commented Apr 16, 2018

Can we please get this merged? This fixes the bug that causes the documented way of spawning plugins on demand (and also preventing race conditions, as far as I can tell) to fail, which is quite annoying.

@dave-tucker
Copy link
Contributor

Sorry it's taken me a while to review this one. I had reservations about adding this back as it was removed along with a dependency on cgo. Now we have support for building without systemd at all, it's likely safe to but due to https://github.com/docker/go-plugins-helpers/blob/master/sdk/unix_listener_nosystemd.go returning nil, nil it will need to include a nil check for listener to avoid panics on systems without systemd. @smuething I know this is > 6 months old, but if you'd like to make the change described above we should be good to merge. If not, and you need this urgently @florolf I can carry this PR.

@florolf
Copy link

florolf commented Apr 17, 2018

For the moment, I'm building the plugin I wanted to use with a vendorized version of go-plugin-helpers which has this patch applied, so it's not super urgent, but I figure this is probably breaking other people's setups as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants