diff options
| author | Yarny0 <41838844+Yarny0@users.noreply.github.com> | 2024-08-29 15:12:49 +0200 |
|---|---|---|
| committer | Yarny0 <41838844+Yarny0@users.noreply.github.com> | 2024-10-27 10:45:38 +0100 |
| commit | 1693e1acc0cde969c70b93acc4a92534eb83194b (patch) | |
| tree | 4e74ff75a76b7e98daa0da3c8b3ce02fc2b49e76 /pkgs/development/python-modules/python-openstackclient/git@git.tavy.me:nixos | |
| parent | 377cbbdc3001d85242b21bb89823c69abf1765ba (diff) | |
nixos/tests/printing: fix race of lpstat and ensure-printers
There is a nasty race condition in the cups tests.
To understand what is going on, one must first note that
printers are installed in the vms with ensure-printers.service,
which is started as part of multi-user.target.
ensure-printers.service in turn triggers a start of
cups.service as it needs to connect to the local cups daemon.
This is what happens when the test runs:
1 the test waits for cups.socket or cups.service to start up
(subtest "Make sure that cups is up on both sides...")
2 after cups.service started
(it starts even in the "socket" case,
triggered by ensure-printers.service),
ensure-printers.service is started
3 the test tries to connect to the cups daemons via curl
(subtest "HTTP server is available too")
4 the test verifies the required printers are installed
("lpstat -a" called by subtest "LP status checks")
Usually, 3 needs some time, so ensure-printers.service
already installed all printers that are required by 4.
But if 3 is too fast, or if ensure-printers.service is too slow,
4 fails to find the printers it is looking for.
One can provoke the problem by adding
> systemd.services.ensure-printers.serviceConfig.ExecStartPre = "/run/current-system/sw/bin/sleep 10";
to the `nodes.client` configuration.
The commit at hand fixes the problem by changing 1:
Instead of waiting for cups,
it now waits for ensure-printers.service
(which in turn waits for cups.service and cups.socket).
This is also in accordance with the
subtest description in the code that promises to
"Make sure that cups is up [...] and printers are set up".
Diffstat (limited to 'pkgs/development/python-modules/python-openstackclient/git@git.tavy.me:nixos')
0 files changed, 0 insertions, 0 deletions
