On 5/9/19 3:55 AM, Michael Shell wrote:
On Tue, 7 May 2019 17:50:28 -0400
[email protected] wrote:
May 7 17:24:23 lfs kernel: perl[5349]: segfault at 7fff0fb57ff8 ip
000000000048ceb9 sp 00007fff0fb58000 error 6 in perl[407000+230000]
Perhaps this is the same issue discussed here:
https://www.perlmonks.org/?node_id=1002749
about a possible memory limit issue.
Does using ulimit to increase the data segment size also fix
the problem for your case as well?
ulimit -n 1024 -u 35 -m 200000 -d unlimited -s 8192 -c 200000 -v 2000
If I use that line before 'make -j4 > m.log' I get
./make-perl-5.28.2-Chap5.sh: fork: retry: Resource temporarily unavailable
./make-perl-5.28.2-Chap5.sh: fork: retry: Resource temporarily unavailable
./make-perl-5.28.2-Chap5.sh: fork: retry: Resource temporarily unavailable
./make-perl-5.28.2-Chap5.sh: fork: retry: Resource temporarily unavailable
./make-perl-5.28.2-Chap5.sh: fork: Resource temporarily unavailable
and nothing gets built. That appears to be due to the -v (virtual
memory) limit.
Fortunately, the build does not take very long and I can test a lot of
variations relatively quickly. Using
ulimit -s unlimited
before 'make' allows the build to complete without any segfaults.
Also, watching sys.log while building says the segfaults currently
happening are at the end of the build. Looking at the stdout build log
I see:
Storable: determining recursion limit: 65000 passed, try more 65000 ...
MAX_DEPTH = 65000
Storable: determining recursion limit: 32500 too big, try less 16275 ...
Storable: determining recursion limit: 16275 too big, try less 8163 ...
Storable: determining recursion limit: 8163 too big, try less 4107 ...
Storable: determining recursion limit: 4107 too big, try less 2079 ...
Storable: determining recursion limit: 2079 too big, try less 1065 ...
Storable: determining recursion limit: 1065 too big, try less 558 ...
Storable: determining recursion limit: 558 too big, try less 304 ...
Storable: determining recursion limit: 304 passed, try more 431 ...
Storable: determining recursion limit: 431 passed, try more 494 ...
Storable: determining recursion limit: 494 passed, try more 526 ...
Storable: determining recursion limit: 526 too big, try less 510 ...
Storable: determining recursion limit: 510 passed, try more 518 ...
Storable: determining recursion limit: 518 too big, try less 514 ...
Storable: determining recursion limit: 514 too big, try less 512 ...
Storable: determining recursion limit: 512 passed, try more 513 ...
Storable: determining recursion limit: 513 passed, try more 513 ...
MAX_DEPTH_HASH = 513
but without the ulimit line I get
Storable: determining recursion limit: 65000 too big, try less 32550 ...
Storable: determining recursion limit: 32550 too big, try less 16325 ...
Storable: determining recursion limit: 16325 passed, try more 24437 ...
Storable: determining recursion limit: 24437 passed, try more 28493 ...
Storable: determining recursion limit: 28493 too big, try less 26465 ...
Storable: determining recursion limit: 26465 too big, try less 25451 ...
Storable: determining recursion limit: 25451 too big, try less 24944 ...
Storable: determining recursion limit: 24944 too big, try less 24691 ...
Storable: determining recursion limit: 24691 passed, try more 24817 ...
Storable: determining recursion limit: 24817 passed, try more 24880 ...
Storable: determining recursion limit: 24880 passed, try more 24912 ...
Storable: determining recursion limit: 24912 passed, try more 24928 ...
Storable: determining recursion limit: 24928 passed, try more 24936 ...
Storable: determining recursion limit: 24936 passed, try more 24940 ...
Storable: determining recursion limit: 24940 too big, try less 24938 ...
Storable: determining recursion limit: 24938 too big, try less 24937 ...
Storable: determining recursion limit: 24937 too big, try less 24937 ...
MAX_DEPTH = 24936
Storable: determining recursion limit: 12468 too big, try less 6259 ...
Storable: determining recursion limit: 6259 too big, try less 3155 ...
Storable: determining recursion limit: 3155 too big, try less 1603 ...
Storable: determining recursion limit: 1603 too big, try less 827 ...
Storable: determining recursion limit: 827 too big, try less 439 ...
Storable: determining recursion limit: 439 passed, try more 633 ...
Storable: determining recursion limit: 633 too big, try less 536 ...
Storable: determining recursion limit: 536 too big, try less 488 ...
Storable: determining recursion limit: 488 passed, try more 512 ...
Storable: determining recursion limit: 512 passed, try more 524 ...
Storable: determining recursion limit: 524 too big, try less 518 ...
Storable: determining recursion limit: 518 too big, try less 515 ...
Storable: determining recursion limit: 515 too big, try less 514 ...
Storable: determining recursion limit: 514 too big, try less 513 ...
Storable: determining recursion limit: 513 passed, try more 513 ...
MAX_DEPTH_HASH = 513
My conclusion is that the segfaults are caused intentionally when trying
to determine the recursion limit and we do not need to do anything.
-- Bruce
--
http://lists.linuxfromscratch.org/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page
Do not top post on this list.
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?
http://en.wikipedia.org/wiki/Posting_style