--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: lintian: lintian will get stuck on arm64
- From: Kentaro Hayashi <hayashi@clear-code.com>
- Date: Fri, 10 Jul 2020 18:36:52 +0900
- Message-id: <20200710183652.01cfe3374e6281fa54ac0381@clear-code.com>
Package: lintian
Version: 2.83.0
Severity: normal
It seems that lintian will get stuck with it on arm64.
I've confirmed this on arm64. It may happen on other platform, but I don't
know.
This issue does not occur on amd64.
At first, I've faced it on arm64v8:focal cloud image, [1]
but it seems that this issue is not specific to the image itself.
[1] https://bugs.launchpad.net/cloud-images/+bug/1881217
Here is the reproducible steps:
$ docker run -it arm64v8/debian:unstable
# apt update
# apt install -y lintian
# lintian --help
As a result, lintian does not show usage help.
Here is the version about lintian:
# dpkg -l | grep lintian
ii lintian 2.83.0 all Debian package checker
Additional information:
It seems that IO::Async::Loop related code will stuck:
# perl -d /usr/bin/lintian --help
Loading DB routines from perl5db.pl version 1.55
Editor support available.
Enter h or 'h h' for help, or 'man perldebug' for more help.
main::(/usr/bin/lintian:55): };
DB<1>
^C
IO::Async::Loop::Epoll::loop_once(/usr/share/perl5/IO/Async/Loop/Epoll.pm:187):
187: $self->post_wait;
DB<1> T
@ = DB::DB called from file '/usr/share/perl5/IO/Async/Loop/Epoll.pm' line 187
. = IO::Async::Loop::Epoll::loop_once(ref(IO::Async::Loop::Epoll)) called from
file '/usr/share/perl5/IO/Async/Loop.pm' line 654
. = IO::Async::Loop::await(ref(IO::Async::Loop::Epoll), ref(IO::Async::Future))
called from file '/usr/share/perl5/Lintian/Util.pm' line 628
$ = Lintian::Util::safe_qx('nproc') called from file
'/usr/share/perl5/Lintian/Internal/FrontendUtil.pm' line 123
@ = Lintian::Internal::FrontendUtil::default_parallel() called from file
'/usr/share/lintian/commands/lintian.pm' line 93
$ = require '/usr/share/lintian/commands/lintian.pm' called from file
'/usr/bin/lintian' line 36
. = eval {...} called from file '/usr/bin/lintian' line 36
. =
main::__ANON__[/usr/bin/lintian:55]('/usr/share/lintian/commands/lintian.pm')
called from file '/usr/bin/lintian' line 120
. = dplint::run_tool('/usr/bin/lintian', 'lintian') called from file
'/usr/bin/lintian' line 299
. = dplint::main() called from file '/usr/bin/lintian' line 383
The trace log indicates that $loop->run_child will stuck at
safe_qx /usr/share/perl5/Lintian/Util.pm:
608 my $loop = IO::Async::Loop->new;
609 my $future = $loop->new_future;
610 my $status;
611
612 $loop->run_child(
613 command => [@command],
614 on_finish => sub {
615 my ($pid, $exitcode, $stdout, $stderr) = @_;
616 $status = ($exitcode >> 8);
617
618 if ($status) {
619 my $message = "Command @command exited with status $status";
620 $message .= ": $stderr" if length $stderr;
621 $future->fail($message);
622 return;
623 }
624
625 $future->done($stdout);
626 });
627
628 $loop->await($future);
629
Regards,
--- End Message ---