-
Notifications
You must be signed in to change notification settings - Fork 399
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
Systemd notification does not accept events after READY is received #133
Comments
For a "Type=notify" service the notify-socket is actually created. It waits for the READY=1 on each ExecStart before continuing. After it got that signal it will close the socket however. It should be visible in the debug.log. May be mysql sends multiple of the READY=1 signals, so we need to assume that it is fine. The mysql examples did not have a problem so far. https://github.com/gdraheim/docker-systemctl-images/blob/master/opensuse-lamp-stack.dockerfile |
Here are the logs:
|
This issue is present on Debian 11 only. On Debian 10, there are no systemd notification issues. Log diff: https://www.diffchecker.com/QFwZOApx The mysql-server version is exactly the same. Both deployed using Ansible on clean Docker images, the only difference is the OS and the related different distro packages. |
Debian 11 has default python v3.9. Debian 10 v2.x. This is the configuration used for all logs above. I did an experiment with python v3.8 on Debian 10. When python v3.8 (instead of v2.x) is used on Debian 10, the same issue is present (eg. The only change from |
2021-12-08 06:53:59,017 DEBUG okay, wating on socket for 0.0s Having a zero timeout does not sound like a good idea. |
The service config is:
using the |
based on the official systemd/systemd#10501 , |
Well, that's not implemented. It seems nobody did try such a global non-timeout before. |
When I set the timeout to 100s in the config, the is there any reason to not translate The
why is the socket closed at all? can it be kept alive so the services can dispatch the notifications regularly? |
0
is specified and does not accept events after READY is received
0
is specified and does not accept events after READY is received
for the |
The systemctl-replacement is very different from a systemd daemon - it will start the processes and detach from them. There is no counterpart that could listen on the socket. As further notifications on the socket are only for logging some messages, it is not really needed for the start/stop mechanism of services. |
Some services like
mysql-server
emit systemd notifications like READY status. Doesdocker-systemctl-replacement
accept any of these (at least accept and discard)?Currently, I see the following errors in mysql-server log file:
The text was updated successfully, but these errors were encountered: