Add a default error code when updater script aborts

We didn't report error/cause codes unless there's an explict "Abort()"
call inside the updater script. As a result, some cause codes set by
ErrorAbort() didn't show up in last_install.

To fix the issue, add a default error code when the script terminates
abnormally (i.e. with non zero status).

Bug: 37912405
Test: error/cause code shows up in last_install when argument parsing fails
Change-Id: Ic6d3bd1855b853aeaa0760071e593a00cf6f0209
This commit is contained in:
Tianjie Xu 2017-05-02 16:07:18 -07:00
parent c99bb23955
commit e0c88793d1
2 changed files with 10 additions and 7 deletions

View file

@ -24,6 +24,7 @@ enum ErrorCode {
kZipOpenFailure, kZipOpenFailure,
kBootreasonInBlacklist, kBootreasonInBlacklist,
kPackageCompatibilityFailure, kPackageCompatibilityFailure,
kScriptExecutionFailure,
}; };
enum CauseCode { enum CauseCode {

View file

@ -193,13 +193,15 @@ int main(int argc, char** argv) {
} }
} }
if (state.error_code != kNoError) { // Installation has been aborted. Set the error code to kScriptExecutionFailure unless
fprintf(cmd_pipe, "log error: %d\n", state.error_code); // a more specific code has been set in errmsg.
// Cause code should provide additional information about the abort; if (state.error_code == kNoError) {
// report only when an error exists. state.error_code = kScriptExecutionFailure;
if (state.cause_code != kNoCause) { }
fprintf(cmd_pipe, "log cause: %d\n", state.cause_code); fprintf(cmd_pipe, "log error: %d\n", state.error_code);
} // Cause code should provide additional information about the abort.
if (state.cause_code != kNoCause) {
fprintf(cmd_pipe, "log cause: %d\n", state.cause_code);
} }
if (updater_info.package_zip) { if (updater_info.package_zip) {