diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2015-02-18 10:50:49 +0000 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2015-02-18 16:32:50 +0000 |
commit | 441241801c152984fa985a61348aff2c988acbfa (patch) | |
tree | 16cbd009cb530733977c8224e0e1c036d57e0b85 /distbuild/build_controller.py | |
parent | f8dad6717ceeafbbbd5e98c9b60626d646e27b90 (diff) | |
download | morph-441241801c152984fa985a61348aff2c988acbfa.tar.gz |
distbuild: Fix build logs being sent to the wrong log files
For a while we have seen an issue where output from build A would end up
in the log file of some other random chunk.
The problem turns out to be that the WorkerConnection class in the
controller-daemon assumes cancellation is instantaneous. If a build was
cancelled, the WorkerConnection would send a cancel message for the job
it was running, and then start a new job. However, the worker-daemon
process would have a backlog of exec-output messages and a delayed
exec-response message from the old job. The controller would receive
these and would assume that they were for the new job, without checking
the job ID in the messages. Thus they would be sent to the wrong log
file.
To fix this, the WorkerConnection class now tracks jobs by job ID, and
the code should be generally more robust when unexpected messages are
received.
Diffstat (limited to 'distbuild/build_controller.py')
0 files changed, 0 insertions, 0 deletions