summaryrefslogtreecommitdiff
path: root/distbuild/build_controller.py
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2015-02-18 10:50:49 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2015-02-18 16:32:50 +0000
commit441241801c152984fa985a61348aff2c988acbfa (patch)
tree16cbd009cb530733977c8224e0e1c036d57e0b85 /distbuild/build_controller.py
parentf8dad6717ceeafbbbd5e98c9b60626d646e27b90 (diff)
downloadmorph-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