Debian Bug report logs -
#964770
lintian: lintian will get stuck on arm64
Reported by: Kentaro Hayashi <hayashi@clear-code.com>
Date: Fri, 10 Jul 2020 09:42:01 UTC
Severity: normal
Found in version lintian/2.83.0
Done: Felix Lechner <felix.lechner@lease-up.com>
Bug is archived. No further changes may be made.
Toggle useless messages
Report forwarded
to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#964770; Package lintian.
(Fri, 10 Jul 2020 09:42:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Kentaro Hayashi <hayashi@clear-code.com>:
New Bug report received and forwarded. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(Fri, 10 Jul 2020 09:42:03 GMT) (full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
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,
Information forwarded
to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#964770; Package lintian.
(Mon, 13 Jul 2020 00:12:02 GMT) (full text, mbox, link).
Acknowledgement sent
to Kentaro Hayashi <hayashi@clear-code.com>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(Mon, 13 Jul 2020 00:12:02 GMT) (full text, mbox, link).
Message #10 received at 964770@bugs.debian.org (full text, mbox, reply):
Hi,
Here it the reproducible code.
use v5.20;
use warnings;
use utf8;
use autodie;
use IO::Async::Loop;
use IO::Async::Process;
my $loop = IO::Async::Loop->new;
my $future = $loop->new_future;
my $status;
my @command = ("nproc");
print $future;
$loop->run_child(
command => [@command],
on_finish => sub {
my ($pid, $exitcode, $stdout, $stderr) = @_;
$status = ($exitcode >> 8);
if ($status) {
my $message = "Command @command exited with status $status";
$message .= ": $stderr" if length $stderr;
$future->fail($message);
return;
}
$future->done($stdout);
});
$loop->await($future);
Information forwarded
to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#964770; Package lintian.
(Mon, 13 Jul 2020 09:39:02 GMT) (full text, mbox, link).
Acknowledgement sent
to Felix Lechner <felix.lechner@lease-up.com>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(Mon, 13 Jul 2020 09:39:02 GMT) (full text, mbox, link).
Message #15 received at 964770@bugs.debian.org (full text, mbox, reply):
Hi Kentaro,
On Sun, Jul 12, 2020 at 5:12 PM Kentaro Hayashi <hayashi@clear-code.com> wrote:
>
> Here is the reproducible code.
The failure does not reproduce on the Debian arm64 porterbox amdahl.
In the code above, I removed the 'print $future' statement and
replaced $loop->await with 'say $future->get'. The result is '4',
presumably the number of processors on amdahl.
I also forwarded your bug to the IRC channel #io-async. Someone there
tested your initial filing in the docker container, as you described,
on a Raspberry Pi4 and then the code you submitted later. Both ran
fine.
Do you have more information about your error? If you need help
debugging your Perl setup, I can recommend the channel #perl-help. The
good folks there would be able to shed light on it.
Kind regards
Felix Lechner
Information forwarded
to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#964770; Package lintian.
(Thu, 16 Jul 2020 10:15:09 GMT) (full text, mbox, link).
Acknowledgement sent
to Kentaro Hayashi <hayashi@clear-code.com>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(Thu, 16 Jul 2020 10:15:09 GMT) (full text, mbox, link).
Message #20 received at 964770@bugs.debian.org (full text, mbox, reply):
Hi,
On Mon, 13 Jul 2020 02:37:42 -0700 Felix Lechner <felix.lechner@lease-up.com> wrote:
> Hi Kentaro,
>
> On Sun, Jul 12, 2020 at 5:12 PM Kentaro Hayashi <hayashi@clear-code.com> wrote:
> >
> > Here is the reproducible code.
>
> The failure does not reproduce on the Debian arm64 porterbox amdahl.
>
> In the code above, I removed the 'print $future' statement and
> replaced $loop->await with 'say $future->get'. The result is '4',
> presumably the number of processors on amdahl.
>
> I also forwarded your bug to the IRC channel #io-async. Someone there
> tested your initial filing in the docker container, as you described,
> on a Raspberry Pi4 and then the code you submitted later. Both ran
> fine.
>
> Do you have more information about your error? If you need help
> debugging your Perl setup, I can recommend the channel #perl-help. The
> good folks there would be able to shed light on it.
>
Thank you for checking.
I've tested with docker.io 19.03.12+dfsg1-3.
% docker pull arm64v8/debian:unstable
unstable: Pulling from arm64v8/debian
75b27a953f63: Pull complete
Digest: sha256:7556a36722abe5df26d81b77059c7d002c3c8184540c0058bfa4b215000fc298
Status: Downloaded newer image for arm64v8/debian:unstable
docker.io/arm64v8/debian:unstable
% docker run -it arm64v8/debian:unstable
# apt update
# apt upgrade
# apt install -y lintian
# dpkg -l | grep lintian
ii lintian 2.84.0 all Debian package checker
# dpkg -l | grep libio-async
ii libio-async-loop-epoll-perl 0.21-1 all Perl extension for an event loop using epoll
ii libio-async-perl 0.77-3 all modules for asynchronous event-driven programming
# nproc
12
Sample code is here. (again)
use v5.20;
use warnings;
use utf8;
use autodie;
use IO::Async::Loop;
use IO::Async::Process;
my $loop = IO::Async::Loop->new;
my $future = $loop->new_future;
my $status;
my @command = ("nproc");
$loop->run_child(
command => [@command],
on_finish => sub {
my ($pid, $exitcode, $stdout, $stderr) = @_;
$status = ($exitcode >> 8);
if ($status) {
my $message = "Command @command exited with status $status";
$message .= ": $stderr" if length $stderr;
$future->fail($message);
return;
}
$future->done($stdout);
});
say $future->get;
From the command line in docker:
# nproc
12
So, I've expected that execution result of sample is 12, but it has no
output to console. the sample code must be killed by Ctrl+C.
> I also forwarded your bug to the IRC channel #io-async. Someone there
tested your initial filing in the docker container, as you described,
on a Raspberry Pi4 and then the code you submitted later. Both ran
fine.
It is strange that it can't be reproducible on other person's docker container
because it is easy to reproduce on my debian unstable host.
I'll contact to #perl-help.
Information forwarded
to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#964770; Package lintian.
(Fri, 30 Oct 2020 05:18:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Felix Lechner <felix.lechner@lease-up.com>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(Fri, 30 Oct 2020 05:18:03 GMT) (full text, mbox, link).
Message #25 received at 964770@bugs.debian.org (full text, mbox, reply):
Hi Kentaro,
On Fri, Jul 10, 2020 at 2:42 AM Kentaro Hayashi <hayashi@clear-code.com> wrote:
>
> It seems that IO::Async::Loop related code will stuck:
Lintian no longer uses IO::Async (although our test suite does). Have
you seen this issue recently? Otherwise, I would like to close this
bug. Thanks!
Kind regards
Felix Lechner
Information forwarded
to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#964770; Package lintian.
(Sun, 01 Nov 2020 14:36:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Kentaro Hayashi <kenhys@xdump.org>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(Sun, 01 Nov 2020 14:36:03 GMT) (full text, mbox, link).
Message #30 received at 964770@bugs.debian.org (full text, mbox, reply):
On Thu, 29 Oct 2020 22:14:41 -0700 Felix Lechner <felix.lechner@lease-up.com> wrote:
> Lintian no longer uses IO::Async (although our test suite does). Have
> you seen this issue recently? Otherwise, I would like to close this
> bug. Thanks!
No, I've confirmed it version 2.83.0 and 2.84.0.
It seems that dependency to IO::Async was explicitly removed since 2.92.0.
so, it was already fixed. (It is ok to close, I think)
Reply sent
to Felix Lechner <felix.lechner@lease-up.com>:
You have taken responsibility.
(Sun, 01 Nov 2020 14:42:02 GMT) (full text, mbox, link).
Notification sent
to Kentaro Hayashi <hayashi@clear-code.com>:
Bug acknowledged by developer.
(Sun, 01 Nov 2020 14:42:02 GMT) (full text, mbox, link).
Message #35 received at 964770-close@bugs.debian.org (full text, mbox, reply):
Hi Kentaro,
On Sun, Nov 1, 2020 at 6:36 AM Kentaro Hayashi <kenhys@xdump.org> wrote:
>
> (It is ok to close, I think)
I agree. Closing this bug. Thanks!
Kind regards
Felix Lechner
Bug archived.
Request was from Debbugs Internal Request <owner@bugs.debian.org>
to internal_control@bugs.debian.org.
(Mon, 30 Nov 2020 07:28:12 GMT) (full text, mbox, link).
Send a report that this bug log contains spam.
Debian bug tracking system administrator <owner@bugs.debian.org>.
Last modified:
Thu Aug 8 02:04:03 2024;
Machine Name:
buxtehude
Debian Bug tracking system
Debbugs is free software and licensed under the terms of the GNU
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.