On Thu, Sep 22, 2005 at 04:33:19AM -0700, Hugo van der Sanden via RT wrote:
> If the same code succeeded with 5.8.6, it is likely that independent
> changes have affected stack usage, and my guess is that lengthening
> the test string slightly would be enough to cause 5.8.6 also to fail.

You're right; by doubling the length of the string I get:

  Complex regular subexpression recursion limit (32766) exceeded at 
chomplogs-test2.pl line 12.

under 5.8.6. It still doesn't dump core, but is clearly heading in that
direction.

Both machines have a ulimit stack size of 65536K, but the perl-5.8.6 machine
is FreeBSD-5.4 whereas the perl-5.8.7 machine is FreeBSD-4.11, so there may
be other differences which explain the larger stack usage.

On the FreeBSD-4.11/perl-5.8.7 machine, I get

  Bus error (core dumped)

and gdb backtrace shows S_regmatch calls 2516 levels deep. I would have
thought that 64MB of stack would have been plenty for that.

$ perl -e 'print `sh -c "ulimit -a"`'
cpu time               (seconds, -t)  unlimited
file size           (512-blocks, -f)  unlimited
data seg size           (kbytes, -d)  524288
stack size              (kbytes, -s)  65536
core file size      (512-blocks, -c)  unlimited
max memory size         (kbytes, -m)  unlimited
locked memory           (kbytes, -l)  unlimited
max user processes              (-u)  5547
open files                      (-n)  11095
virtual mem size        (kbytes, -v)  unlimited
sbsize                   (bytes, -b)  unlimited

Regards,

Brian.

Reply via email to