| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: I493fced8cf2664283923f6f41097ca991d3fc3de
|
|
|
|
| |
Change-Id: I16680439b131e63d30eeff91814a1af643af6246
|
|
|
|
|
|
| |
Logging build output makes the controller logs difficult to read.
Change-Id: I5b81ff9359ada969e964328eb1c2624ab6b9375a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We found a distbuild controller stuck in a busy loop, with the logs
full of the same error message repeated:
... _flush(): Exception 'IOError: [Errno 32] Broken pipe' from sock.write()
We suspect this came about because the initiator disconnected without
sending an EOF. The initiator was in a VM on a laptop so it seems
possible that the host OS turned off the wireless adaptor without giving
the VM a chance to close its connections gracefully.
The busy loop is because nothing in the SocketBuffer class handles the
SocketError events queued by the _flush() method. Unhandled events are
ignored. So the SocketBuffer stays in 'w' state without ever shifting
any data and never returns. Adding transitions to handle the SocketError
event will fix the problem.
If a socket error happens now in the same scenario, it will be handled
as if the initiator disconnected.
Change-Id: I0f6834f7186a01ca2bc74aef899a4cccbc891e51
|
|
|
|
|
|
|
| |
This patch fixes an error where we can end up calling int(None) when
we try to send an error response for a malformed message.
Change-Id: Id3ee3298cfb6a5cb32e35fdc5916dab1e4c87a03
|
|
|
|
| |
Change-Id: I674c39149aad82c07c85d2db3207280b91dfa292
|
|
|
|
| |
Change-Id: I95fbfcb2ed6a8ffdd946d36eacc030b4ae1b9b21
|
|
|
|
|
|
|
| |
Adds distinct message types to give us more flexibility over message
handling now that we have multiple initiator types with different requirements.
Change-Id: Ib2af8736b83d66ef20a8e37591ca68c9441b6497
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the initiator sends an invalid build-request message, it will now
exit with the following sort of error:
ERROR: Failed to build baserock:baserock/definitions
f2d78e9b7221bca65cba53af3f3b50d50d90628f
systems/build-system-x86_64.morph: Invalid build-request message. Check
you are using a supported version of Morph. This distbuild network uses
protocol version 2.
Previously, the controller would log an error to its log file, but it
would not send any response to the initiator so the initiator would
hang forever.
Behaviour is the same as before for the case where the initiator sends a
build-request message with the wrong protocol version: the initiator
will exit with an error message.
Change-Id: I94fdee02bc701d4a679a0261b3c46dbdf14cfcaf
|
|
|
|
|
|
|
|
|
| |
Adds a command to get the status of all recently ran distbuilds
for a given server (e.g. Running, Finished, Failed, Cancelled),
so as to tell if a build running via distbuild-start has finished
or otherwise exited without going through the server's log files
Change-Id: I5ce9fe54ae7b1bd8fe3e0d629f615042be8827ed
|
|
|
|
|
|
|
|
|
|
|
| |
Add command for distbuild-start to build_plugin in morphlib,
and create a boolean parameter to inform the initiator whether
to disconnect the controller and leave the build running remotely.
Add distbuild-cancel command to parse currently-running distbuild
build-request IDs and cancel the one matching the given argument
Change-Id: I458a5767bb768ceb2b4d8876adf1c86075d452bd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the distbuild-list-jobs command will fail if morph is
outdated (i.e. protocol version for client and distbuild network
don't match); a protocol_version field has been added to the
list-jobs request message to fix this.
Moved version check outside build-request message to reduce duplication
in new functions.
Generalised the list-request output to reduce duplication for any
further additions that may require a message output.
Change-Id: I28e733cbfe8c89e8c11427df5d40ab275abd313c
|
|
|
|
|
|
|
|
|
|
| |
Add InitiatorListJobs class and list-jobs message template, add
distbuild-list-jobs to morph commandlist, send running job
information back to initiator, split out handling of build request
and list-jobs messages to separate functions and change generating
a random integer to UUID for message identification
Change-Id: Id02604f2c1201dbc10f6bbd7f501b8ce1ce0deae
|
|
|
|
| |
Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
|
| |
|
|\
| |
| |
| |
| | |
Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk>
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This message was hundreds of kilobytes in size, as it contained a
recursive list of dependencies for each artifact in the build graph. It
was used in the initiator only to print this message:
Build steps in total: 592
This message is now gone. The 'Need to build %d artifacts'
build-progress message now indicates the total build steps instead:
Need to build 300 artifacts, of 592 total
This is a compatible change to the distbuild protocol: old initiators
will continue to work as normal with new controllers that don't send
the build-steps message.
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
There is always one BuildController object per InitiatorConnection.
By coupling the objects slightly closer we can simplify some transitions
in BuildController.
|
| |
|
|
|
|
| |
Makes it easier to see what they mean at a glance.
|
|
|
|
| |
This makes tracking multiple builds through one log file a bit easier.
|
|
|
|
|
|
|
|
|
|
| |
New DistbuildSocket class that wraps socket.socket(), providing a
descriptive repr() handler showing where the socket is connected, and
providing a couple of helper methods for fetching local and remote
endpoint names.
This commit also adds a descriptive repr() handler to a few other
objects (mostly giving socket connection details).
|
|
|