utah-client postinstall script failure ignored
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
UTAH |
Fix Released
|
Low
|
Javier Collado |
Bug Description
When installing the utah-client package using gdebi, installation errors aren't detected mainly because gdebi return success (0) even when the underlying installation process failed as in the following example:
(Reading database ... 147223 files and directories currently installed.)
Preparing to replace utah-client 0.4ubuntu46-
Unpacking replacement utah-client ...
Setting up utah-client (0.4ubuntu46-
dpkg: error processing utah-client (--install):
subprocess installed post-installation script returned error exit status 6
Errors were encountered while processing:
utah-client
To detect this situation on the server side, the output from gdebi should be parsed looking for some string (for example, error exist status) and if that pattern is found, then consider the installation as failed.
Related branches
- Max Brustkern (community): Approve
-
Diff: 112 lines (+26/-15)3 files modifiedutah/provisioning/baremetal/cobbler.py (+3/-3)
utah/provisioning/provisioning.py (+21/-10)
utah/run.py (+2/-2)
summary: |
- utah-client post installation failure + utah-client installation failure with gdebi ignored |
Changed in utah: | |
status: | New → Triaged |
importance: | Undecided → Low |
assignee: | nobody → Javier Collado (javier.collado) |
Changed in utah: | |
status: | Triaged → In Progress |
Changed in utah: | |
status: | In Progress → Fix Committed |
Changed in utah: | |
status: | Fix Committed → Fix Released |
Since the interface in Machine.run states that it returns the output status from the process being call, either that interface has to be updated or the error has to be detected by piping another command. However, with this solution, the real output from the command will be lost and not written to the logs.