-
Notifications
You must be signed in to change notification settings - Fork 192
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
Not from forked to trigger full docker CI of Fix/6448/s6 notification polling check #6475
Conversation
@unkcpz very strange that the docker.yml workflow was not triggered here.But in any case I've just triggered it via workflow dispatch. https://github.com/aiidateam/aiida-core/actions/runs/9500519783 |
Thanks @danielhollas @sphuber can you test run with the built image
|
I get the same problem:
it hangs there. So maybe it is a problem with my setup? I am running wsl2 which may have its peculiarities. Not sure. |
Hmm, I am not sure why the |
85c5e4a
to
86dd0e8
Compare
@sphuber sorry, I didn't notice you update in here already. Please feel free go ahead with this and close the other one. |
It may not have been fixed after all. I triggered the workflow through dispatch manually and there the tests failed: https://github.com/aiidateam/aiida-core/actions/runs/9888940447/job/27314039090 |
a61b7db
to
92cc589
Compare
Found (at least part of) the problem. Really unhelpfully,
|
Ok, I think this combination of first running |
For the `aiida-core-with-services` image where the services are part of the image, we cannot rely on the health check for the services provided by docker-build as is used for the `aiida-core-base` case. Instead, a simple sleep was added to the `aiida-prepare.sh` script that sets up the profile, to make sure the services are up before the profile is created. This solution is neither elegant nor robust. Here the sleep approach is replaced by `s6-notifyoncheck`. This hook allows blocking the startup from continuing until a script returns a 0 exit code. The script in question first calls `rabbitmq-diagnostics ping` to make sure the RabbitMQ server is even up, followed by a call to `rabbitmq-diagnostics check_running`. If the latter returns 0, it means RabbitMQ is up and running and the script returns 0 as well, which will trigger `s6-notifyoncheck` to continue with the rest of the startup. Note that `rabbitmq-diagnostics is_running` could not be used as that command sometimes returns 0 even if the service is not ready at all. Co-authored-by: Sebastiaan Huber <mail@sphuber.net>
For the `aiida-core-with-services` image where the services are part of the image, we cannot rely on the health check for the services provided by docker-build as is used for the `aiida-core-base` case. Instead, a simple sleep was added to the `aiida-prepare.sh` script that sets up the profile, to make sure the services are up before the profile is created. This solution is neither elegant nor robust. Here the sleep approach is replaced by `s6-notifyoncheck`. This hook allows blocking the startup from continuing until a script returns a 0 exit code. The script in question first calls `rabbitmq-diagnostics ping` to make sure the RabbitMQ server is even up, followed by a call to `rabbitmq-diagnostics check_running`. If the latter returns 0, it means RabbitMQ is up and running and the script returns 0 as well, which will trigger `s6-notifyoncheck` to continue with the rest of the startup. Note that `rabbitmq-diagnostics is_running` could not be used as that command sometimes returns 0 even if the service is not ready at all. Co-authored-by: Sebastiaan Huber <mail@sphuber.net> Cherry-pick: 9579378
Fixes #6448
see #6469, this is to trigger the push to ghcr.io