mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-02 09:10:11 +02:00
build: close ssh_channel upon timeout
The build can get stuck when running into the timeout and paramiko not noticing it. This can be reproduced by setting a small build timeout for an app. I tried setting set_keepalive() but it did not help. This forcefully closes the ssh channel to the VM so the fdroid build will continue. As we destroy the VM in the next step anyhow I think this is fine.
This commit is contained in:
parent
5e08187567
commit
a6700e65ed
@ -49,6 +49,7 @@ except ImportError:
|
||||
pass
|
||||
|
||||
buildserverid = None
|
||||
ssh_channel = None
|
||||
|
||||
|
||||
# Note that 'force' here also implies test mode.
|
||||
@ -68,7 +69,7 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force):
|
||||
target folder for the build result
|
||||
force
|
||||
"""
|
||||
global buildserverid
|
||||
global buildserverid, ssh_channel
|
||||
|
||||
try:
|
||||
paramiko
|
||||
@ -892,6 +893,8 @@ def force_halt_build(timeout):
|
||||
"""Halt the currently running Vagrant VM, to be called from a Timer."""
|
||||
logging.error(_('Force halting build after {0} sec timeout!').format(timeout))
|
||||
timeout_event.set()
|
||||
if ssh_channel:
|
||||
ssh_channel.close()
|
||||
vm = vmtools.get_build_vm('builder')
|
||||
vm.destroy()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user