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

[perl #132893] Storable build hangs when building 5.27.9 on WindowsXP

Thread Next
From:
Tony Cook via RT
Date:
February 22, 2018 04:25
Subject:
[perl #132893] Storable build hangs when building 5.27.9 on WindowsXP
Message ID:
rt-4.0.24-18350-1519273548-218.132893-15-0@perl.org
On Wed, 21 Feb 2018 10:46:33 -0800, chorny wrote:
> ..\perl.exe -I..\lib -I. ..\dist\Storable\stacksize --core
> probe for max. stack sizes...
> 65000 failed, try less 32550 ...
> 32550 failed, try less 16325 ...
> 16325 failed, try less 8213 ...
> 8213 failed, try less 4157 ...
> 4157 passed, try more 6185 ...
> 6185 passed, try more 7199 ...
> 7199 failed, try less 6692 ...
> 6692 failed, try less 6439 ...
> 6439 failed, try less 6312 ...
> 6312 failed, try less 6249 ...
> 6249 failed, try less 6217 ...
> 6217 failed, try less 6201 ...
> 6201 failed, try less 6193 ...
> 6193 passed, try more 6197 ...
> 6197 passed, try more 6199 ...
> 6199 passed, try more 6200 ...
> 6200 passed, try more 6200 ...
> MAX_DEPTH = 6200
> 3100 passed, try more 4650 ...
> 4650 passed, try more 5425 ...
> 5425 passed, try more 5812 ...
> Out of memory!
> (hangs)
> 

I've reproduced this.  It requires USE_64_BIT_INT, I haven't managed to track down the cause yet.

> Also `stacksize` is executed on every stage - build/tests/install, so
> I had to kill it 3 times. After killing hanging process, stacksize
> continues search.
> This is same problem as with Storable on CPAN. In CPAN version I
> solved it with Win32::Job, but it is not a core module. See
> https://github.com/rurban/Storable/pull/2
> It should be possible to use Win32::Process, but it is not a core
> module either.

I'll see if I can prevent running the probe several times, probably by having the rule in win32/(GNU)?[mM]akefile(.mk)? run a sub-make in the Storable directory instead of running it directly.

> 
> cpantesters results show that with RURBAN/Storable-3.05_16.tar.gz
> these values can be partially predicted. Note that values for 3.05_16
> on CPAN and 3.06 in core are different. And `stacksize` in 3.05_16
> currently does not hang even when not using Win32::Job.
> 
> Windows 10 64-bit, perl 5.26.0 64-bit:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257
> Windows 10 64-bit, perl 5.22.1 32-bit+64-bit int:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257
> Windows 10 64-bit, perl 5.22.1 64-bit:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257
> Windows 10 64-bit, perl 5.24.0 32-bit:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257
> Windows XP 32-bit inside VM, perl 5.20.1 32-bit+64-bit int:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257
> Windows XP 32-bit inside VM, perl 5.18.2 32-bit+64-bit int:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257
> Windows XP 32-bit inside VM, perl 5.18.2 32-bit:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=512
> Windows XP 32-bit inside VM, perl 5.26.0 32-bit+64-bit int:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=512
> Windows XP 32-bit inside VM, perl 5.12.2 32-bit:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257
> Windows XP 32-bit, perl 5.27.9 32-bit+64-bit int:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257
> Windows XP 32-bit, perl 5.14.0 32-bit:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257
> Windows XP 32-bit inside VM, perl 5.16.0, 5.16.3 32-bit:
> PST_STACK_MAX_DEPTH=513
> PST_STACK_MAX_DEPTH_HASH=257

Those values are just stacksize falling back to a default.

A predefined table is going to vary based on bitness of build, debug/non-debug, whether USE_64_BIT_INT is set, version of perl, compiler, compiler version and changes to Storable itself.

The builder of perl may adjust the stack size too.

That's just too many dimensions.

I may just do what Reini did and fallback to a default on difficult platforms like XP.

Tony

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=132893

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