Bug#878575: lintian: Unreliable signal handling - causes left-over trash on lindsay.d.o
Package: lintian
Version: 2.5.54
Severity: normal
Hi,
Lintian is unreliable at handling signals. This causes it to fail to
clean up in some cases on lindsay.d.o (and other archive-wide runs).
Example from the log file:
"""
[2017-10-14T03:34:39]: Updating harness state cache
[2017-10-14T03:34:55]: Running Lintian (round 4/16) ...
[2017-10-14T03:34:55]: - Range: GROUP:2vcard/0.6-1 ... GROUP:zeroconf-ioslave/4:16.08.0-1
[2017-10-14T03:34:55]: New lintian log at /srv/lintian.debian.org/logs/lintian.log-AL0DXxL
[2017-10-14T03:37:08]: [lintian] processed 2vcard/0.6-1 successfully (time: 1.690s)
[2017-10-14T03:37:09]: [lintian] processed abi-tracker/1.9-1 successfully (time: 1.062s)
[...]
[2017-10-14T03:55:50]: [lintian] processed haskell-attoparsec-enumerator/0.3.4-5 successfully (time: 8.084s)
[2017-10-14T03:55:58]: [lintian] processed haskell-data-default-instances-old-locale/0.0.1-7 successfully (time: 8.038s)
[2017-10-14T03:56:06]: [lintian] processed haskell-hjsmin/0.2.0.2-3 successfully (time: 8.523s)
[2017-10-14T03:56:14]: [lintian] processed haskell-html/1.0.1.2-13 successfully (time: 8.155s)
[2017-10-14T03:56:21]: Received SIGALRM, sending SIGTERM to 7889 [1/3]
[2017-10-14T03:56:21]: Scheduling another alarm in 5 minutes from now...
[2017-10-14T03:56:22]: [lintian] error processing haskell-integer-logarithms/1.0.2-1 (time: 7.813s)
[2017-10-14T03:56:30]: [lintian] processed haskell-knob/0.1.1-10 successfully (time: 7.994s)
[2017-10-14T03:56:39]: [lintian] processed haskell-megaparsec/5.3.1-1 successfully (time: 9.336s)
[2017-10-14T03:56:47]: [lintian] processed haskell-pipes-bytestring/2.1.6-1 successfully (time: 8.006s)
[...]
[2017-10-14T04:00:37]: [lintian] processed jts/1.14+ds-2 successfully (time: 8.919s)
[2017-10-14T04:00:39]: [lintian] processed jzlib/1.1.3-1 successfully (time: 2.147s)
[2017-10-14T04:01:21]: Received SIGALRM, sending SIGTERM to 7889 [2/3]
[2017-10-14T04:01:21]: Scheduling another alarm in 5 minutes from now...
[2017-10-14T04:01:24]: Lintian terminated by signal: 15
[2017-10-14T04:01:24]: - skipping the rest of the worklist
"""
This log suggests that lintian continued despite having received a
signal. Furthermore, there is a left over temporarily lab on
lindsay.d.o having a timestamp close to start of the lintian run:
"""
$ ls -ld /srv/lintian.debian.org/scratch/temp-lintian-lab-rCsPnScQ8t
drwx------ 4 lintian lintian 4096 Oct 14 03:34 /srv/lintian.debian.org/scratch/temp-lintian-lab-rCsPnScQ8t
"""
My /guess/ is that when lintian received the first signal, the signal
handler then disabled itself and threw a "Interrupted" error.
Something then catches the error and flags the check / package as
"uncheckable" but continues on. When the second signal arrived, the
default signal handler terminated with lintian not cleaning up after
itself.
Thanks,
~Niels
Reply to: