adt-run gets stopped when running under timeout
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
autopkgtest (Ubuntu) |
Triaged
|
Low
|
Unassigned |
Bug Description
$ mkdir tmp
$ adt-buildvm-
$ bzr branch lp:~canonical-ci-engineering/ubuntu-test-cases/boottest
$ export ADT_VIRT=
$ boottest/
This ends with:
adt-run [15:40:11]: version 3.9.3-1~
adt-run: DBG: $ vserver: adt-virt-qemu /home/vila/
adt-run: DBG: got reply from testbed: ok
adt-run: DBG: testbed open, scratch=None
adt-run: DBG: sending command to testbed: open
adt-run: DBG: got reply from testbed: ok /tmp/adt-run.dKQGkT
adt-run: DBG: sending command to testbed: print-execute-
adt-run: DBG: got reply from testbed: ok /tmp/adt-
adt-run: DBG: sending command to testbed: capabilities
adt-run: DBG: got reply from testbed: ok revert revert-full-system root-on-testbed isolation-machine reboot suggested-
adt-run: DBG: testbed capabilities: ['revert', 'revert-
adt-run [15:40:30]: @@@@@@@
adt-run: DBG: testbed command ['sh', '-ec', 'awk \'/^deb(-src)? .*(ubuntu.
The boottest.sh scripts includes a 'timeout 600 adt-run ..." and everything gets killed properly after hanging on the above.
Changed in autopkgtest (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
Indeed when you run this, the whole set of processes goes into "T" state, i. e. it received a SIGSTOP:
martin 23439 0.0 0.1 64656 18396 pts/7 T 17:42 0:00 /usr/bin/python3 -u /usr/bin/adt-run --debug --no-built-binaries --unbuilt-tree /tmp/boottest/ scripts/ ../tests/ getpkgsrc -o pkgsrc --apt-pocket= proposed --setup- commands= adt-commands --- qemu /srv/vm/ adt-vivid- amd64-cloud. img fifo-log. c9x0c1vs fifo-log. c9x0c1vs -a /dev/stderr fifo-log. c9x0c1vs adt-virt- qemu /srv/vm/ adt-vivid- amd64-cloud. img adt-virt- qemu.sf04xpyf/ monitor, server, nowait -serial unix:/tmp/ adt-virt- qemu.sf04xpyf/ ttyS0,server, nowait -serial unix:/tmp/ adt-virt- qemu.sf04xpyf/ ttyS1,server, nowait -virtfs local,id= autopkgtest, path=/tmp/ adt-virt- qemu.sf04xpyf/ shared, security_ model=none, mount_tag= autopkgtest -drive file=/tmp/ adt-virt- qemu.sf04xpyf/ overlay. img,cache= unsafe, if=virtio, index=0 -redir tcp:10022::22 virt-qemu. sf04xpyf/ runcmd env LANG=C.UTF-8 sh -ec awk '/^deb(-src)? .*(ubuntu. com|debian. org|ftpmaster) / { if ($3 !~ /-/) { $3 = $3"-proposed"; print }}' /etc/apt/ sources. list `ls /etc/apt/ sources. list.d/ *.list 2>/dev/null|| true` > /etc/apt/ sources. list.d/ proposed. list
martin 23440 0.0 0.0 13264 1804 pts/7 T 17:42 0:00 tee /tmp/adt-
martin 23441 0.0 0.0 13264 1984 pts/7 T 17:42 0:00 tee /tmp/adt-
martin 23442 0.0 0.0 13044 668 pts/7 T 17:42 0:00 cat /tmp/adt-
martin 23443 0.0 0.0 48012 14580 pts/7 T 17:42 0:00 /usr/bin/python3 /usr/bin/
martin 23446 8.1 2.2 2209192 359176 pts/7 Tl 17:42 0:13 qemu-system-x86_64 -enable-kvm -m 1024 -smp 1 -localtime -nographic -net user -net nic,model=virtio -monitor unix:/tmp/
martin 23474 0.0 0.0 120700 12104 pts/7 Tl 17:43 0:00 /usr/bin/python3 /tmp/adt-
At first I thought running adt-run under "timeout" would cause this, and suspected some interaction between the timeout program's timer with adt-run's timeouts; but timeout uses Linux hrtimers and shouldn't get in the way with adt-run's alarm().
When I run the command that boottest.sh runs manually, it works fine:
+ timeout 600 adt-run --debug --no-built-binaries --unbuilt-tree /tmp/boottest/ scripts/ ../tests/ getpkgsrc -o pkgsrc --apt-pocket= proposed --setup- commands= adt-commands --- qemu /srv/vm/ adt-vivid- amd64-cloud. img
So we need to find out what causes adt-run to get STOPed.