Public bug reported:

The dracut autopkgtest 40-systemd is currently failing on Ubuntu
stonking because the upstream TEST-40-SYSTEMD helper calls systemd-
analyze verify "$i" without disabling man-page checks.

I reproduced the failure in the upstream dracut test suite as well as in the 
Ubuntu autopkgtest environment. The first relevant error is:
sysinit.target: Command 'man systemd.special(7)' failed with code 1
Warning: systemd-analyze verify sysinit.target failed

After this, the test powers off the guest early and eventually fails because it 
never reaches the expected success marker:
E: Message '^All OK' not found in QEMU log output
40-systemd FAIL non-zero exit status 1

This appears to be a false negative in the test rather than a real
initrd boot failure. `40-systemd` is intended to validate the
dracut/systemd initrd boot path, but the current invocation also makes
the test depend on man-page availability inside the initrd test
environment.

I verified that changing the helper from:
systemd-analyze verify "$i"

to:
systemd-analyze --man=no verify "$i"

makes the test pass in the same environment.

This issue reproduces with upstream dracut `main` and the upstream `111`
tag, and it affects the Ubuntu `dracut 111-4` package autopkgtest in
stonking.

Upstream issue: https://github.com/dracut-ng/dracut/issues/2492
Upstream PR: https://github.com/dracut-ng/dracut/pull/2493

**Steps to Reproduce**
On Ubuntu stonking, run the dracut autopkgtest:
autopkgtest . --test-name 40-systemd -U -o /tmp/adt-40 -- null

Or run the equivalent upstream test:
make TESTS="40" clean check

Expected Result
The 40-systemd test should pass if the initrd/systemd boot path is valid. It 
should not fail solely because man systemd.special(7) is unavailable in the 
initrd test environment.

Actual Result
The test fails during the pre-pivot systemd-analyze verify step:
sysinit.target: Command 'man systemd.special(7)' failed with code 1
Warning: systemd-analyze verify sysinit.target failed

and then exits with:

40-systemd FAIL non-zero exit status 1

Proposed Fix
Carry the upstream fix once accepted, or temporarily patch Ubuntu dracut to 
call:
systemd-analyze --man=no verify "$i"

in systemd-analyze.sh.

This keeps the test focused on unit verification and the initrd boot
path, without depending on man-page availability in the test
environment.

** Affects: dracut (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: sts

** Description changed:

  The dracut autopkgtest 40-systemd is currently failing on Ubuntu
  stonking because the upstream TEST-40-SYSTEMD helper calls systemd-
  analyze verify "$i" without disabling man-page checks.
  
- I reproduced the failure in the upstream dracut test suite as well as in
- the Ubuntu autopkgtest environment. The first relevant error is:
- 
- ```text
+ I reproduced the failure in the upstream dracut test suite as well as in the 
Ubuntu autopkgtest environment. The first relevant error is:
  sysinit.target: Command 'man systemd.special(7)' failed with code 1
  Warning: systemd-analyze verify sysinit.target failed
- ```
  
- After this, the test powers off the guest early and eventually fails
- because it never reaches the expected success marker:
- 
- ```text
+ After this, the test powers off the guest early and eventually fails because 
it never reaches the expected success marker:
  E: Message '^All OK' not found in QEMU log output
  40-systemd FAIL non-zero exit status 1
- ```
  
  This appears to be a false negative in the test rather than a real
  initrd boot failure. `40-systemd` is intended to validate the
  dracut/systemd initrd boot path, but the current invocation also makes
  the test depend on man-page availability inside the initrd test
  environment.
  
  I verified that changing the helper from:
- 
- ```bash
  systemd-analyze verify "$i"
- ```
  
  to:
- 
- ```bash
  systemd-analyze --man=no verify "$i"
- ```
  
  makes the test pass in the same environment.
  
  This issue reproduces with upstream dracut `main` and the upstream `111`
  tag, and it affects the Ubuntu `dracut 111-4` package autopkgtest in
  stonking.
  
- Upstream issue:
- 
- ```text
- https://github.com/dracut-ng/dracut/issues/2492
- ```
- 
- Upstream PR:
- 
- ```text
- https://github.com/dracut-ng/dracut/pull/2493
- ```
+ Upstream issue: https://github.com/dracut-ng/dracut/issues/2492
+ Upstream PR: https://github.com/dracut-ng/dracut/pull/2493
  
  **Steps to Reproduce**
- 
  On Ubuntu stonking, run the dracut autopkgtest:
- 
- ```bash
  autopkgtest . --test-name 40-systemd -U -o /tmp/adt-40 -- null
- ```
  
  Or run the equivalent upstream test:
- 
- ```bash
  make TESTS="40" clean check
- ```
  
  **Expected Result**
- 
- The 40-systemd test should pass if the initrd/systemd boot path is
- valid. It should not fail solely because man systemd.special(7) is
- unavailable in the initrd test environment.
+ The 40-systemd test should pass if the initrd/systemd boot path is valid. It 
should not fail solely because man systemd.special(7) is unavailable in the 
initrd test environment.
  
  **Actual Result**
- 
  The test fails during the pre-pivot systemd-analyze verify step:
- 
- ```text
  sysinit.target: Command 'man systemd.special(7)' failed with code 1
  Warning: systemd-analyze verify sysinit.target failed
- ```
  
  and then exits with:
  
- ```text
  40-systemd FAIL non-zero exit status 1
- ```
  
  **Proposed Fix**
- 
- Carry the upstream fix once accepted, or temporarily patch Ubuntu dracut
- to call:
- 
- ```bash
+ Carry the upstream fix once accepted, or temporarily patch Ubuntu dracut to 
call:
  systemd-analyze --man=no verify "$i"
- ```
  
  in systemd-analyze.sh.
  
  This keeps the test focused on unit verification and the initrd boot
  path, without depending on man-page availability in the test
  environment.

** Tags added: sts

** Description changed:

  The dracut autopkgtest 40-systemd is currently failing on Ubuntu
  stonking because the upstream TEST-40-SYSTEMD helper calls systemd-
  analyze verify "$i" without disabling man-page checks.
  
  I reproduced the failure in the upstream dracut test suite as well as in the 
Ubuntu autopkgtest environment. The first relevant error is:
  sysinit.target: Command 'man systemd.special(7)' failed with code 1
  Warning: systemd-analyze verify sysinit.target failed
  
  After this, the test powers off the guest early and eventually fails because 
it never reaches the expected success marker:
  E: Message '^All OK' not found in QEMU log output
  40-systemd FAIL non-zero exit status 1
  
  This appears to be a false negative in the test rather than a real
  initrd boot failure. `40-systemd` is intended to validate the
  dracut/systemd initrd boot path, but the current invocation also makes
  the test depend on man-page availability inside the initrd test
  environment.
  
  I verified that changing the helper from:
  systemd-analyze verify "$i"
  
  to:
  systemd-analyze --man=no verify "$i"
  
  makes the test pass in the same environment.
  
  This issue reproduces with upstream dracut `main` and the upstream `111`
  tag, and it affects the Ubuntu `dracut 111-4` package autopkgtest in
  stonking.
  
  Upstream issue: https://github.com/dracut-ng/dracut/issues/2492
  Upstream PR: https://github.com/dracut-ng/dracut/pull/2493
  
  **Steps to Reproduce**
  On Ubuntu stonking, run the dracut autopkgtest:
  autopkgtest . --test-name 40-systemd -U -o /tmp/adt-40 -- null
  
  Or run the equivalent upstream test:
  make TESTS="40" clean check
  
- **Expected Result**
+ Expected Result
  The 40-systemd test should pass if the initrd/systemd boot path is valid. It 
should not fail solely because man systemd.special(7) is unavailable in the 
initrd test environment.
  
- **Actual Result**
+ Actual Result
  The test fails during the pre-pivot systemd-analyze verify step:
  sysinit.target: Command 'man systemd.special(7)' failed with code 1
  Warning: systemd-analyze verify sysinit.target failed
  
  and then exits with:
  
  40-systemd FAIL non-zero exit status 1
  
- **Proposed Fix**
+ Proposed Fix
  Carry the upstream fix once accepted, or temporarily patch Ubuntu dracut to 
call:
  systemd-analyze --man=no verify "$i"
  
  in systemd-analyze.sh.
  
  This keeps the test focused on unit verification and the initrd boot
  path, without depending on man-page availability in the test
  environment.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2160087

Title:
  dracut 40-systemd autopkgtest fails because systemd-analyze verify
  checks man page availability

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dracut/+bug/2160087/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to