Fix race in shell when testing for errors to raise SysExit
SysExit is raised if the OutputManager has non-zero error_count. However, error_count is incremented in a print thread, but tested on the main thread. Currently error_count is tested before the OutputManager print threads have exited, which results in a race. This race means that SysExit is not always raised even when an error has occured. This change moves the error_count test after the OutputManager context manager has exited, which ensures that the OutputManager threads have exited. Change-Id: I5ef7d9f10057fe2b41f48ab95066a7265b86a3ac Closes-Bug: #1379229
This commit is contained in:
parent
589d34ecda
commit
43c1141baa
@ -1304,9 +1304,7 @@ Examples:
|
||||
except (ClientException, RequestException, socket.error) as err:
|
||||
output.error(str(err))
|
||||
|
||||
had_error = output.error_count > 0
|
||||
|
||||
if had_error:
|
||||
if output.error_count > 0:
|
||||
exit(1)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user