Package: lintian
Version: 2.85.0
Severity: important
User: de...@kali.org
Usertags: origin-kali

In Kali, our build daemons run "rebuildd" with a build script that calls
sbuild --run-lintian. Since lintian 2.85 (I believe 2.84.0 is not affected),
the build process get stuck at the point when lintian is run. I see two lintian
processes (a parent and its child) and both are stuck in epoll_pwait()
according to strace.

In normal (non-verbose mode) there's no output of lintian before it gets stuck:
Example in this build log:
http://buildd-amd64.kali.org/build-logs/golang-github-projectdiscovery-gologger_1.0.0-0kali1-kali-dev-amd64-20200724-124452.3196.log

When I add the --debug option you see this:
http://buildd-amd64.kali.org/build-logs/kali-meta_2020.3.10-kali-dev-amd64-20200727-132744.3202.log

The last lines are like this:
N: Check script control-files for binary:kali-tools-forensics/2020.3.10/amd64 
done (0.015s)
N: Running check: cron on binary:kali-tools-forensics/2020.3.10/amd64  ...
N: Check script cron for binary:kali-tools-forensics/2020.3.10/amd64 done 
(0.009s)
N: Running check: cruft on binary:kali-tools-forensics/2020.3.10/amd64  ...
N: Check script cruft for binary:kali-tools-forensics/2020.3.10/amd64 done 
(0.015s)
N: Running check: deb-format on binary:kali-tools-forensics/2020.3.10/amd64  ...

The process tree is like this:
kalibui+ 32428  0.0  0.0  19640  3252 ?        Ss   13:28   0:00  \_ /bin/sh 
/srv/build.kali.org/bin/build kali-meta 2020.3.10 amd64 kali-dev
kalibui+ 32431  0.2  0.1  89316 33428 ?        S    13:28   0:00      \_ 
/usr/bin/perl /usr/bin/sbuild --no-source --run-lintian --lintian-opts=-I 
--debug --nolog --apt-update --apt-upgrade --no-apt-distupgrade --arch=amd64 -d 
kali-dev --arch-all /srv/build.kali.org/build/work/kali-meta_2020.3.10.dsc
kalibui+ 32436  0.1  0.0  88388 30100 ?        S    13:28   0:00          \_ 
/usr/bin/perl /usr/bin/sbuild --no-source --run-lintian --lintian-opts=-I 
--debug --nolog --apt-update --apt-upgrade --no-apt-distupgrade --arch=amd64 -d 
kali-dev --arch-all /srv/build.kali.org/build/work/kali-meta_2020.3.10.dsc
root      4007  0.0  0.0  66528  6480 ?        S    13:28   0:00          \_ 
schroot -d /build/kali-meta-E2qWUi -c 
kali-dev-amd64-sbuild-a3951a2c-b417-47f2-915c-bb7f546b39ff --run-session -q -u 
kalibuild -p -- lintian -I --debug kali-meta_2020.3.10_amd64.changes 
kali-meta_2020.3.10.dsc
kalibui+  4008  3.3  0.2 123596 76080 ?        S    13:28   0:03              
\_ lintian -I --debug kali-meta_2020.3.10_amd64.changes kali-meta_2020.3.10.dsc
kalibui+  5628  0.0  0.2 123732 69692 ?        S    13:28   0:00                
  \_ lintian -I --debug kali-meta_2020.3.10_amd64.changes 
kali-meta_2020.3.10.dsc

The open files are like this:
# ls -al /proc/4008/fd /proc/5628/fd
/proc/4008/fd:
total 0
dr-x------ 2 kalibuild kalibuild  0 Jul 27 13:38 .
dr-xr-xr-x 8 kalibuild kalibuild  0 Jul 27 13:28 ..
lrwx------ 1 kalibuild kalibuild 64 Jul 27 13:38 0 -> /dev/null
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:38 1 -> pipe:[689890348]
lr-x------ 1 kalibuild kalibuild 64 Jul 27 13:38 11 -> pipe:[689938177]
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:38 13 -> 
/srv/build.kali.org/build/logs/i3-gaps_4.18.1-0kali2-kali-dev-i386-20200724-200857.3199.log
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:38 2 -> pipe:[689890348]
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:38 3 -> 
/srv/build.kali.org/db/rebuildd.log
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:38 4 -> 
/srv/build.kali.org/db/rebuildd.log
lrwx------ 1 kalibuild kalibuild 64 Jul 27 13:38 5 -> socket:[8970131]
lrwx------ 1 kalibuild kalibuild 64 Jul 27 13:38 6 -> anon_inode:[eventpoll]
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:38 7 -> 
/run/schroot/mount/kali-dev-amd64-sbuild-a3951a2c-b417-47f2-915c-bb7f546b39ff/dev/null
lr-x------ 1 kalibuild kalibuild 64 Jul 27 13:38 8 -> pipe:[689938176]
lrwx------ 1 kalibuild kalibuild 64 Jul 27 13:38 9 -> socket:[528586941]

/proc/5628/fd:
total 0
dr-x------ 2 kalibuild kalibuild  0 Jul 27 13:28 .
dr-xr-xr-x 8 kalibuild kalibuild  0 Jul 27 13:28 ..
lrwx------ 1 kalibuild kalibuild 64 Jul 27 13:28 0 -> /dev/null
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:28 1 -> pipe:[689890348]
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:28 10 -> pipe:[689938176]
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:28 12 -> pipe:[689938177]
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:28 2 -> pipe:[689890348]
lrwx------ 1 kalibuild kalibuild 64 Jul 27 13:28 3 -> anon_inode:[eventpoll]
lr-x------ 1 kalibuild kalibuild 64 Jul 27 13:28 6 -> pipe:[689942617]
l-wx------ 1 kalibuild kalibuild 64 Jul 27 13:28 7 -> pipe:[689942617]
lr-x------ 1 kalibuild kalibuild 64 Jul 27 13:28 8 -> pipe:[689942618]

And the strace output is like this:
# strace -p 4008 -p 5628
strace: Process 4008 attached
strace: Process 5628 attached
[pid  5628] getpid( <unfinished ...>
[pid  4008] getpid( <unfinished ...>
[pid  5628] <... getpid resumed> )      = 5628
[pid  4008] <... getpid resumed> )      = 4008
[pid  5628] epoll_pwait(3,  <unfinished ...>
[pid  4008] epoll_pwait(6, 

When I run "sbuild --run-lintian" manualy, outside of rebuildd, then lintian
works and it doesn't get stuck. So there might something about what rebuildd
is doing like calling "os.setsid()"...

Cheers,

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500, 
'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-6-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_UNSIGNED_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages lintian depends on:
ii  binutils                      2.34.90.20200706-1
ii  bzip2                         1.0.8-4
ii  diffstat                      1.63-1
ii  dpkg                          1.20.5
ii  dpkg-dev                      1.20.5
ii  file                          1:5.38-5
ii  gettext                       0.19.8.1-10
ii  gpg                           2.2.20-1
ii  intltool-debian               0.35.0+20060710.5
ii  libapt-pkg-perl               0.1.36+b3
ii  libarchive-zip-perl           1.68-1
ii  libcapture-tiny-perl          0.48-1
ii  libclass-xsaccessor-perl      1.19-3+b5
ii  libclone-perl                 0.45-1
ii  libconfig-tiny-perl           2.24-1
ii  libcpanel-json-xs-perl        4.19-1
ii  libdata-dpath-perl            0.58-1
ii  libdata-validate-domain-perl  0.10-1
ii  libdevel-size-perl            0.83-1+b1
ii  libdpkg-perl                  1.20.5
ii  libemail-address-xs-perl      1.04-1+b2
ii  libfile-basedir-perl          0.08-1
ii  libfile-find-rule-perl        0.34-1
ii  libfont-ttf-perl              1.06-1
ii  libhtml-parser-perl           3.72-5
ii  libio-async-loop-epoll-perl   0.21-1
ii  libio-async-perl              0.77-3
ii  libjson-maybexs-perl          1.004002-1
ii  liblist-compare-perl          0.53-1
ii  liblist-moreutils-perl        0.416-1+b5
ii  liblist-utilsby-perl          0.11-1
ii  libmoo-perl                   2.004000-1
ii  libmoox-aliases-perl          0.001006-1
ii  libnamespace-clean-perl       0.27-1
ii  libpath-tiny-perl             0.114-1
ii  libsereal-decoder-perl        4.017+ds-1
ii  libsereal-encoder-perl        4.017+ds-1
ii  libtext-levenshteinxs-perl    0.03-4+b7
ii  libtext-xslate-perl           3.5.8-1
ii  libtime-duration-perl         1.21-1
ii  libtime-moment-perl           0.44-1+b2
ii  libtimedate-perl              2.3300-1
ii  libtry-tiny-perl              0.30-1
ii  libtype-tiny-perl             1.010002-1
ii  libunicode-utf8-perl          0.62-1+b1
ii  liburi-perl                   1.76-2
ii  libxml-libxml-perl            2.0134+dfsg-2
ii  libxml-writer-perl            0.625-1
ii  libyaml-libyaml-perl          0.82+repack-1
ii  man-db                        2.9.3-2
ii  patchutils                    0.4.2-1
ii  perl [libdigest-sha-perl]     5.30.3-4
ii  t1utils                       1.41-4
ii  xz-utils                      5.2.4-1+b1

Versions of packages lintian recommends:
ii  libperlio-gzip-perl  0.19-1+b6

Versions of packages lintian suggests:
pn  binutils-multiarch     <none>
ii  libtext-template-perl  1.59-1

-- no debconf information

Reply via email to