On Fri, Jun 26, 2015 at 11:26:17PM +0200, Yann Dirson wrote: > On Fri, Jun 26, 2015 at 10:12:58AM +0000, Mattia Rizzolo wrote: > > As I haven't killed it i can still run stuff if you point me at something. > > The "yes.c" provided by the testsuite does not handle write errors,
bad guys, bad :P
> If it's still time, could you get a look at what those admin.sh
> processes are waiting for ?
Today i feel kind and I re-ran the build just for you ;) though i'll kill it,
we got a huge machine, but wasting 12 hours in a "yes" process it's not worth
(sorry) :)
> Damned "portable" test suite :)
eheh
This was the process tree:
mattia@jenkins ~ % pstree -ap 41724
jenkins-script-,41724 /tmp/jenkins-script-fuxoLszc
├─sudo,34552 timeout -k 12.1h 12h /usr/bin/ionice -c 3 /usr/bin/nice
/usr/sbin/pbuilder --build --configfile ...
│ └─timeout,34556 -k 12.1h 12h /usr/bin/ionice -c 3 /usr/bin/nice
/usr/sbin/pbuilder --build --configfile ...
│ └─pbuilder,34558 /usr/sbin/pbuilder --build --configfile
/srv/reproducible-results/tmp.7XtvRcqFJf/pbuilderrc_QueT --debbuildopts -b
--basetgz...
│ └─pbuilder-buildp,34571 /usr/lib/pbuilder/pbuilder-buildpackage
--configfile /srv/reproducible-results/tmp.7XtvRcqFJf/pbuilderrc_QueT
--debbuildopts ...
│ └─pbuilder-buildp,48729
/usr/lib/pbuilder/pbuilder-buildpackage --configfile
/srv/reproducible-results/tmp.7XtvRcqFJf/pbuilderrc_QueT ...
│ └─sh,48731
│ └─dpkg-buildpacka,48795 /usr/bin/dpkg-buildpackage
-us -uc -b -rfakeroot
│ └─rules,49289 -f debian/rules build
│ └─dh,49290 -w /usr/bin/dh build --parallel
--with autotools_dev
│ └─rules,19304 -f debian/rules
override_dh_auto_test
│ └─sh,19309 -c unset dir; dh_auto_test
--max-parallel=1
│ └─dh_auto_test,19311 -w
/usr/bin/dh_auto_test --max-parallel=1
│ └─make,19739 -j1 check
│ └─bash,19765 -c...
│ └─bash,54788 -c...
│ └─make,54790 check
│ └─bash,6857
-ec ...
│
└─bash,6861 admin.sh
│
└─bash,6885 admin.sh
│
└─yes,6886 %C%
└─tee,34553 -a /srv/reproducible-results/tmp.7XtvRcqFJf/tmp.oKpwe4UZVb
This is some strace -p, unluckly the ones over admin.sh are really useless:
root@jenkins:/# strace -p 6885
Process 6885 attached
wait4(-1, ^CProcess 6885 detached
<detached ...>
root@jenkins:/# strace -p 6861
Process 6861 attached
wait4(-1, ^CProcess 6861 detached
<detached ...>
root@jenkins:/# strace -p 6885
Process 6885 attached
wait4(-1, ^CProcess 6885 detached
<detached ...>
root@jenkins:/# timeout 0.5 s strace -p 6886
timeout: failed to run command 's': No such file or directory
root@jenkins:/# timeout 0.5s strace -p 6886
Process 6886 attached
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
write(1, "%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n%C%\n"..., 4096) = -1 EPIPE
(Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=6886, si_uid=1111} ---
(... + too much output for just 0.5 seconds....)
Then i connected to the last admin.sh and killed (with SIGKILL) the yes process:
root@jenkins:/# strace -p 6885
Process 6885 attached
wait4(-1, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGKILL}], 0, NULL) = 6886
rt_sigaction(SIGINT, {0x45e070, [], SA_RESTORER, 0x7f9bd75e5180}, {0x443820,
[], SA_RESTORER, 0x7f9bd75e5180}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
close(3) = -1 EBADF (Bad file descriptor)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=6887, si_uid=1111,
si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, 0x7fff9e6635d0, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[]}) = 0
exit_group(0) = ?
+++ exited with 0 +++
root@jenkins:/#
Interesting enough this did not fail the build, though (i think the
"exit_group(0)" above has something to do with this).
Given the whole job didn't die I tried a SIGTERM in the same way of above over
the second build:
mattia@jenkins ~ % pstree -ap 41724
jenkins-script-,41724 /tmp/jenkins-script-fuxoLszc
├─sudo,28197 timeout -k 12.1h 12h /usr/bin/ionice -c 3 /usr/bin/nice
/usr/bin/linux64 --uname-2.6 /usr/bin/unshare --uts -- /usr/sbin/pbuilder
--build ...
│ └─timeout,28205 -k 12.1h 12h /usr/bin/ionice -c 3 /usr/bin/nice
/usr/bin/linux64 --uname-2.6 /usr/bin/unshare --uts -- /usr/sbin/pbuilder
--build ...
│ └─pbuilder,28207 /usr/sbin/pbuilder --build --configfile
/srv/reproducible-results/tmp.7XtvRcqFJf/pbuilderrc_EoKt --hookdir
/etc/pbuilder/rebuild-hooks ...
│ └─pbuilder-buildp,28217 /usr/lib/pbuilder/pbuilder-buildpackage
--configfile /srv/reproducible-results/tmp.7XtvRcqFJf/pbuilderrc_EoKt --hookdir
...
│ └─pbuilder-buildp,39005
/usr/lib/pbuilder/pbuilder-buildpackage --configfile
/srv/reproducible-results/tmp.7XtvRcqFJf/pbuilderrc_EoKt --hookdir ...
│ └─sh,39008
│ └─dpkg-buildpacka,39171 /usr/bin/dpkg-buildpackage
-us -uc -b -rfakeroot
│ └─rules,39591 -f debian/rules build
│ └─dh,39592 -w /usr/bin/dh build --parallel
--with autotools_dev
│ └─rules,1972 -f debian/rules
override_dh_auto_test
│ └─sh,1973 -c unset dir; dh_auto_test
--max-parallel=1
│ └─dh_auto_test,1974 -w
/usr/bin/dh_auto_test --max-parallel=1
│ └─make,2103 -j1 check
│ └─bash,2114 -c...
│ └─bash,18755 -c...
│ └─make,18756 check
│ └─bash,42944
-ec ...
│
└─bash,42949 admin.sh
│
└─bash,42983 admin.sh
│
└─yes,42984 %C%
└─tee,28198 -a /srv/reproducible-results/tmp.7XtvRcqFJf/tmp.oKpwe4UZVb
mattia@jenkins ~ %
root@jenkins:/# strace -p 42983
Process 42983 attached
wait4(-1, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGTERM}], 0, NULL) = 42984
rt_sigaction(SIGINT, {0x45e070, [], SA_RESTORER, 0x7fa1575dd180}, {0x443820,
[], SA_RESTORER, 0x7fa1575dd180}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
close(3) = -1 EBADF (Bad file descriptor)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=42987, si_uid=2222,
si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, 0x7ffe226b3a10, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[]}) = 0
exit_group(0) = ?
+++ exited with 0 +++
root@jenkins:/#
Well, i just guess it doesn care about returns code, haven't even opened the
sources.
Though I also think SIGKILLing child should fail parents, as that's not a
normal end for a process. Anyway, I personally don't care in this case.
Also because the build is reproducible! :D
all this stuff looks quite useless to me, but maybe it helps you!
--
regards,
Mattia Rizzolo
GPG Key: 66AE 2B4A FCCF 3F52 DA18 4D18 4B04 3FCD B944 4540 .''`.
more about me: http://mapreri.org : :' :
Launchpad user: https://launchpad.net/~mapreri `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia `-
signature.asc
Description: Digital signature

