Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.bugs.dist > #1020693
| From | Michał Mirosław <mirq-linux@rere.qmqm.pl> |
|---|---|
| Newsgroups | linux.debian.bugs.dist |
| Subject | Bug#966692: stunnel4: FTBFS because of test hang |
| Date | 2020-08-05 23:00 +0200 |
| Message-ID | <AAyFX-1oZ-1@gated-at.bofh.it> (permalink) |
| References | (2 earlier) <Az9JE-7hn-3@gated-at.bofh.it> <AAw1r-8sw-1@gated-at.bofh.it> <AAwuu-ae-1@gated-at.bofh.it> <Az9JE-7hn-3@gated-at.bofh.it> <AAwuu-ae-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Wed, Aug 05, 2020 at 09:28:12PM +0300, Peter Pentchev wrote:
> On Wed, Aug 05, 2020 at 08:01:53PM +0200, Michał Mirosław wrote:
> > On Sun, Aug 02, 2020 at 05:34:40PM +0300, Peter Pentchev wrote:
> > > On Sun, Aug 02, 2020 at 02:02:22AM +0200, Michał Mirosław wrote:
> > [...]
> > > --- a/debian/tests/runtime
> > > +++ b/debian/tests/runtime
> > > @@ -432,6 +432,7 @@ MAIN:
> > >
> > > if (!defined $line) {
> > > $eof->send($got_version);
> > > + undef $f_out;
> > > } elsif (!$got_version) {
> > > if ($line =~ m{^
> > > stunnel \s+
> >
> > I believe $f_out will not be defined here, as it only gets set after
> > sub{} is created. Perl confirms this:
> >
> > $ TEST_STUNNEL=src/stunnel strace -f -o /tmp/log debian/tests/runtime
> > Global symbol "$f_out" requires explicit package name (did you forget to declare "my $f_out"?) at debian/tests/runtime line 435.
> > Execution of debian/tests/runtime aborted due to compilation errors.
>
> Of course you're right. Sorry about that! That's what I get for writing
> a patch three minutes before I have to head out and never remembering to
> actually test it later :(
>
> How about the attached one?
[...]
> --- a/debian/tests/runtime
> +++ b/debian/tests/runtime
> @@ -424,7 +424,8 @@ MAIN:
>
> my ($got_version, $before_version) = (undef, '');
> my $eof = AnyEvent->condvar;
> - my $f_out = AnyEvent->io(
> + my $f_out;
> + $f_out = AnyEvent->io(
> fh => $s_in,
> poll => 'r',
> cb => sub {
> @@ -432,6 +433,7 @@ MAIN:
>
> if (!defined $line) {
> $eof->send($got_version);
> + undef $f_out;
> } elsif (!$got_version) {
> if ($line =~ m{^
> stunnel \s+
This stops the endless readings of EOF, but:
1. the FD gets leaked (shouldn't matter much, though)
2. the test hangs anyway
Using print-debugging, I see that it stops at wait_for_child line just
after printing the version. It seems that something is reaping the child
before the main thread has a chance to wait for it.
From strace:
4285 +++ exited with 0 +++
4284 <... epoll_ctl resumed> ) = 0
4284 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4285, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
4284 write(4, "\1\0\0\0\0\0\0\0", 8) = 8
4284 rt_sigreturn({mask=[PIPE]}) = 0
4284 epoll_wait(3, [{EPOLLHUP, {u32=5, u64=4294967301}}, {EPOLLIN, {u32=4, u64=4294967300}}], 64, 59743) = 2
4284 epoll_ctl(3, EPOLL_CTL_MOD, 5, {EPOLLIN, {u32=5, u64=4294967301}}) = 0
4284 read(4, "\1\0\0\0\0\0\0\0", 8) = 8
4284 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED|WCONTINUED, NULL) = 4285
4284 wait4(-1, 0x7ffcd56d5784, WNOHANG|WSTOPPED|WCONTINUED, NULL) = -1 ECHILD (No child processes)
4284 wait4(-1, 0x7ffcd56d5534, WNOHANG, NULL) = -1 ECHILD (No child processes)
This is before the 'wait_for_child' a few lines later.
4284 epoll_wait(3, [{EPOLLHUP, {u32=5, u64=4294967301}}], 64, 59743) = 1
4284 epoll_ctl(3, EPOLL_CTL_MOD, 5, {EPOLLIN, {u32=5, u64=4294967301}}) = 0
4284 read(5, "", 8192) = 0
4284 write(1, "Got stunnel version 5.56\n", 25) = 25
4284 write(2, "wait child 4285\n", 16) = 16
This is version printout plus my check.
4284 epoll_wait(3, [{EPOLLHUP, {u32=5, u64=4294967301}}], 64, 59743) = 1
4284 epoll_ctl(3, EPOLL_CTL_DEL, 5, 0x5631c0d44a40) = 0
This clears watcher for the pipe.
4284 epoll_wait(3, 0x5631c0d44a40, 64, 59743) = -1 EINTR (Interrupted system call)
And this waits forever.
Best Regards
Michał Mirosław
Back to linux.debian.bugs.dist | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Bug#966692: stunnel4: FTBFS because of test hang Peter Pentchev <roam@ringlet.net> - 2020-08-05 20:40 +0200
Bug#966692: stunnel4: FTBFS because of test hang Michał Mirosław <mirq-linux@rere.qmqm.pl> - 2020-08-05 23:00 +0200
Bug#966692: stunnel4: FTBFS because of test hang Peter Pentchev <roam@ringlet.net> - 2020-08-05 23:40 +0200
Bug#966692: stunnel4: FTBFS because of test hang Michał Mirosław <mirq-linux@rere.qmqm.pl> - 2020-08-06 03:20 +0200
Bug#966692: stunnel4: FTBFS because of test hang Peter Pentchev <roam@ringlet.net> - 2020-08-06 08:10 +0200
csiph-web