develooper Front page | perl.perl5.porters | Postings from May 2018

Re: [perl #132863] Bleadperl breaksOALDERS/LWP-Protocol-https-6.07.tar.gz on Windows

Thread Previous | Thread Next
From:
Steve Hay via perl5-porters
Date:
May 3, 2018 17:20
Subject:
Re: [perl #132863] Bleadperl breaksOALDERS/LWP-Protocol-https-6.07.tar.gz on Windows
Message ID:
CADED=K43dnM+1nBAYmdNmc+M0J+ZeO7kV6WqDcUB+fjw=VcEKg@mail.gmail.com
On 30 April 2018 at 22:15, Dave Mitchell <davem@iabyn.com> wrote:
> On Mon, Apr 23, 2018 at 01:39:27PM +0100, Dave Mitchell wrote:
>> On Thu, Mar 08, 2018 at 01:06:24AM +0200, Alexandr Ciornii wrote:
>> > I've done manual bisect. I've used another module that hangs -
>> > IO::Socket::SSL. t/mitm.t hangs and t/session_ticket.t fails.
>> > Problem appear starting with commit
>> > 8e920bd341e241f50a74dbf8aa343319f204e200 - "set PERL_EXIT_DESTRUCT_END
>> > in all embeddings".
>>
>> Zefram, that commit was one of yours. I don't quite understand the
>> implications of it, but note that the test file which newly hangs on
>> Windows contains both a fork() and
>>
>>     END { kill 9,@childs if @childs };
>>
>> so perhaps an END block wasn't being called before, or used to be called
>> only once, and is now being called multiple times or something?
>
> I've now pushed the branch smoke-me/davem/win32_exit, which may fix this.
> Note that I've made the change in win32/perlhost.h blind, as I haven't
> tried compiling or testing it on win32.
>
> Could someone try it on win32 and see that (a) it doesn't break win32;
> (b) it fixes the distributions mentioned in this ticket:
>
>         LWP-Protocol-https-6.0
>         KAORU/HTTP-Async-0.33
>         IO::Socket::SSL
>

Your branch builds and passes all tests for me on Windows 7 with 32-bit VS2015.

I've tried out IO::Socket::SSL and find that in blead t/mitm.t hangs
before doing anything. With your branch it now passes all 8 tests but
then hangs instead of exiting. So it's an improvement of sorts, but
something is still amiss somewhere. However, there's no improvement
with t/session_ticket.t. With either build I get the following
failure:

D:\Temp\IO-Socket-SSL-2.056-0>perl -Mblib t\session_ticket.t
1..6
# listen at 127.0.0.1:51973
# listen at 127.0.0.1:51974
access to server[0]
creating new ticket key1
server[0] reused=0
# connect to 0: success reuse=0
ok 1 - no initial session -> no reuse
access to server[0]
using current ticket secret
server[0] reused=1
# connect to 0: success reuse=1
ok 2 - reuse with the next session and secret[0]
access to server[1]
using current ticket secret
server[1] reused=1
rotate secrets
# connect to 1: success reuse=1
ok 3 - reuse even though server changed, since they share ticket secret
access to server[1]
using non-current ticket secret
creating new ticket key2
server[1] reused=0
rotate secrets
# connect to 1: success reuse=0
ok 4 - reports non-reuse since server1 changed secret to secret[1]
access to server[0]
using non-current ticket secret
creating new ticket key1
server[0] reused=0
# connect to 0: success reuse=0
ok 5 - reports non-reuse on server0 since got ticket with secret[1] in last step
access to server[0]
using current ticket secret
server[0] reused=1
# connect to 0: success reuse=1
ok 6 - reuse again since got ticket with secret[0] in last step
not ok 1 - select failed or timed out: Bad file descriptor at
t\session_ticket.t line 113.
#
#   Failed test 'select failed or timed out: Bad file descriptor at
t\session_ticket.t line 113.
# '
#   at ./t/testlib.pl line 39.

I haven't tried an earlier
(pre-8e920bd341e241f50a74dbf8aa343319f204e200) perl to confirm that
this used to work. I will try to do that in the next day or two.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About