-
Notifications
You must be signed in to change notification settings - Fork 206
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
Allow restarting openqa-webui-daemon
without downtime
#5820
Conversation
7f80895
to
fc2bcef
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
It works locally when installing the packages from the OBS check. (If you want to reproduce, be sure to also install I tested this by hammering the F5 key in the web browser why reloading the service via The journal also looks good - so the old service is really only stopped once the new one is starting:
The output of I also already have a fix for the failing test. I still need to ensure that the service is not restarted on updates via the rpm scripts and that other services being restarted don't trigger a restart of the web UI. And I also need to add |
* Allow restarting `openqa-webui-daemon` without downtime by sending SIGHUP to the process or reloading the systemd unit `openqa-webui.service` * Start the Mojolicious application with `reuse=1` as mentioned on https://docs.mojolicious.org/Mojolicious/Guides/Cookbook#Zero-downtime-software-upgrades * Note that other services are not covered but those are also not user facing or retried and thus not required * See https://progress.opensuse.org/issues/162533
This helps minimizing downtimes. It is also generally acceptable to show the web UI even though not all other services can be started. Related ticket: https://progress.opensuse.org/issues/162533
* Avoid restarting the main web UI service via the rpm postrun script; only reload the service * See https://progress.opensuse.org/issues/162533
fc2bcef
to
a1f44e4
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #5820 +/- ##
=======================================
Coverage 98.50% 98.50%
=======================================
Files 395 395
Lines 38715 38715
=======================================
Hits 38136 38136
Misses 579 579 ☔ View full report in Codecov by Sentry. |
I tested the package from OBS checks locally and it works. So reinstalling/updating the package now causes the main service to reload and other services are still restarted. I also didn't run into any limits regarding PostgreSQL connections. However, in production we might have other limits so I'll check whether I can run two prefork instances (which all the usual settings) in parallel on OSD and o3. EDIT: I can run |
openqa-webui-daemon
without downtime by sending SIGHUP to the process or reloading the systemd unitopenqa-webui.service
reuse=1
as mentioned on https://docs.mojolicious.org/Mojolicious/Guides/Cookbook#Zero-downtime-software-upgrades