Merge lp:~dgadomski/ubiquity/lp1749289 into lp:ubiquity
Status: | Work in progress |
---|---|
Proposed branch: | lp:~dgadomski/ubiquity/lp1749289 |
Merge into: | lp:ubiquity |
Diff against target: |
43 lines (+5/-3) 2 files modified
bin/oem-config-firstboot (+0/-1) bin/ubiquity (+5/-2) |
To merge this branch: | bzr merge lp:~dgadomski/ubiquity/lp1749289 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Dimitri John Ledkov | Approve | ||
Colin Watson (community) | Abstain | ||
Review via email: mp+341450@code.launchpad.net |
Description of the change
Fixes a systemd freeze after cancelling debconf UI.
When using systemd and performing a oem installation using a debconf_ui
frontend there is a scenario requiring a reboot to continue (more details
at LP: #1749289).
There were several causes for this:
* bin/oem-
the script was terminated and no exit code check was done so
code 10 return from oem-config-wrapper was not handled in the if block.
* bin/ubiquity cancelling the installation returned a code 10,
which then lead to performing a wizard.do_reboot(). This method
was not implemented for the debconf frontend. This caused an exception
and exiting the process with code 1.
Moreover, stealing the terminal control with the termios.TIOCSCTTY
made doing input/output in oem-config-
after falling into if [ $CODE -eq 10 ] block nothing was presented
to the user.
After fixing the above issues user is presented with 3 options: to try again,
launch a shell or reboot (as originally intended in the code).
Unmerged revisions
- 6596. By Dariusz Gadomski
-
Fixes a systemd freeze after cancelling debconf UI.
When using systemd and performing a oem installation using a debconf_ui
frontend there is a scenario requiring a reboot to continue (more details
at LP: #1749289).There were several causes for this:
* bin/oem-config- firstboot - 'set -e' had to be removed, because otherwise
the script was terminated and no exit code check was done so
code 10 return from oem-config-wrapper was not handled in the if block.
* bin/ubiquity cancelling the installation returned a code 10,
which then lead to performing a wizard.do_reboot(). This method
was not implemented for the debconf frontend. This caused an exception
and exiting the process with code 1.
Moreover, stealing the terminal control with the termios.TIOCSCTTY
made doing input/output in oem-config-firstboot impossible, so even
after falling into if [ $CODE -eq 10 ] block nothing was presented
to the user.After fixing the above issues user is presented with 3 options: to try again,
launch a shell or reboot (as originally intended in the code).
I don't know if you manually selected me as a reviewer or if I was selected automatically. If the latter, please let me know and I'll see if I can fix that. If the former, please don't do that; I very rarely work on ubiquity any more and I won't be doing reviews of anything non-trivial.
I'll request a review from the ubuntu-installer team instead.