[Bug 1831252] Update Released
Łukasz Zemczak
1831252 at bugs.launchpad.net
Mon Nov 4 13:23:39 UTC 2019
The verification of the Stable Release Update for initramfs-tools has
completed successfully and the package is now being released to
-updates. Subsequently, the Ubuntu Stable Release Updates Team is being
unsubscribed and will not receive messages about this bug report. In
the event that you encounter a regression using the package from
-updates please report a new bug using ubuntu-bug and tag the bug report
regression-update so we can easily find any regressions.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to initramfs-tools in Ubuntu.
https://bugs.launchpad.net/bugs/1831252
Title:
panic=-1 is completely ignored by the initrd causing unexpected
behaviour
Status in initramfs-tools package in Ubuntu:
Fix Released
Status in initramfs-tools source package in Xenial:
Fix Committed
Status in initramfs-tools source package in Bionic:
Fix Committed
Status in initramfs-tools source package in Disco:
Fix Released
Status in initramfs-tools source package in Eoan:
Fix Released
Bug description:
[Impact]
in Ubuntu Core we default to using panic=-1 on the kernel command line (documented at [1]) to speed up the auto-rollback mechanism of the kernel. on a kernel level this works just fine and the system reboots immediately ...
when in the initramfs during boot and a panic occurs, no reboot
happens at all, the initrd spawns a shell regardless of the panic=
value ...
[Test case]
Before booting change root=$foo to root=x$foo - this will make it
panic. Then test that
1) "panic=-1" causes an immediate reboot
2) "panic=5" waits 5 seconds
3) no "panic" drops you to a shell
[Regression potential]
This adds some very specific checks for -1 in places that use ${panic}, as such the regression potential is somewhat limited. If there were a regression, it could be a syntax error (causing boot to fail) or a sleep not working correctly (causing sleep to, well, not sleep) - but that's unrealistic.
[Other info]
this is caused by a filter in /usr/share/initramfs-tools/init
panic=*)
panic="${x#panic=}"
case ${panic} in
*[![:digit:].]*)
panic=
;;
esac
;;
this function only lets positive values through, else panic= simply
gets unset
the panic() function itself is also not capable of handling negative
values, it has a sleep call that interprets negative values as
commandline options instead of simply ignoring a negative sleep time
[2] (line 11).
the filter in the init script should allow the -1 value (to comply
with the kernel documentation and behaviour) and the panic() function
should properly skip the sleep call when a negative value for panic=
is set.
[1] https://github.com/torvalds/linux/blob/v4.17/Documentation/admin-guide/kernel-parameters.txt#L2931
[2] https://paste.ubuntu.com/p/mswD8Cd869/
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1831252/+subscriptions
More information about the foundations-bugs
mailing list