| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
This is mostly to check that the 'cancel entire subprocess tree' works
as expected. Revert that patch and the test fails.
There are also some tweaks included in this commit.
Change-Id: If297522e6589ebb3a07dac66a39eb243789e53aa
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We discovered a case where a user of distbuild began a build of
'qtbase', then cancelled it 2 minutes in. The `morph worker-build`
process didn't exit for over an hour -- it ran right through until the
chunk artifacts had been created. Then it exited with code -9 (SIGKILL).
This seems to be due to the fact that SIGKILL doesn't kill subprocesses,
and so any file descriptors the subprocesses have open will remain open.
If we set up the `morph worker-build` process as a process group
leader, using os.setpgid(), then we can use os.killpg() to kill the
entire process group. This should ensure that the `morph worker-build`
command exits straight away, as all of its subprocesses will be killed
at the same time it is.
Change-Id: I38707d18004d8c5bc994fd0cb99e90fd5def58e4
|
|
|
|
|
|
|
|
|
| |
Previously it was only available in the distbuild-helper program. Moving
it to its own module means we can test it and reuse it.
This commit also adds a docstring to the class.
Change-Id: Iaf7854048cf0ff463a87894f1f500cdcb6a34d8b
|
|
|
|
| |
Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
distbuild/build_controller.py
Reviewed by:
Lars Wirzenius
Daniel Silverstone
Sam Thursfield
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|