[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]

Re: tentative bug report about difficult-to-reproduce but substantial problems with 5.005_6x



On Sat, 08 Jan 2000 22:06:34 +0100, Marc Lehmann wrote:
>The observations below are very vague, and might not really be perl bugs,
>but I continue to rule out other possible reasons, so it might be helpful
>for you to know that _I_ encounter big problems with perl5_005_6x and a
>variety of modules, especially larger ones like SDF and gimp-perl.
[...]
>The problem is that all the bugs I encounter are indeed reproducable, but
>they require quite an elaborate setup and _many_ lines of code.

My suggestion is that people shouldn't be shy of reporting problems even
if they can't reduce it down to a test case small enough to attempt a fix.

>For example, in gimp-perl, I try (without much success of course) to catch
>errors and warnings from die and warn in the die/warn "signal handler". I
>also use die (and croak via xs) as an exception mechanism.
>
>This all works fine (modulo that errors during eval parsing are wrongly
>being reported as bugs in the program, while "eval" execution is properly
>signaled) on 5.005_03.
>
>With (any!) 5.005_6x I sometimes get mysterious segfaults, sometimes I just
>get empty error mssages (and I don't know where they get lost: printing or
>storing the message in my signal handler sometimes 'fixes' this).
>
>Sometimes a croak from xs creates a silent exit(!) or a segfault (without
>usable backtrace).
>
>All this is very difficult to debug, since it could just be errors in my
>xs modules (mortality or something).

I'd suggest running it through Purify or similar.

>Sooooo..... while it pretty much breaks any larger module I happen to
>_use_, I haven't yet succeeded in producing anything that is small enough
>to be mailed (single file for example), which is why I planned to be quiet
>until either I can find a testcase or until it is going to be released ;)
>
>I just couldn't resist dropping you my general feelings. I followed
>5.004_50+ all the time, and never experienced such problems. They started
>somewhere around 5.005_60 or _61 and are very complex. I originally thought
>that I had a bug somewhere (and indeed I found quite many ;), but since other
>modules (even perl-only like SDF) have similar unexplainable bugs.

If you look at the Changelogs, you'll see there have been two sources
of bugs in _6x:  1) the OP_SASSIGN optimization (change#3612); and
2) optimizations to the regular expression engine.

To disable the first, do this to opcode.pl, `make regen_headers`,
`make distclean`, and rebuild everything.

   opcode.pl:
-   $argsum |= (8|256) if $flags =~ /T/;        # ... which may be lexical
+   $argsum |= 8 if $flags =~ /T/;              # ditto

Dealing with the second is more complicated.  You'll need to methodically
back out patches that affect the regular expression engine until you
detect a change in the symptoms (which you may or may not).


Sarathy
gsar@ActiveState.com


Follow-Ups from:
Ilya Zakharevich <ilya@math.ohio-state.edu>
References to:
Marc Lehmann <marc@gimp.org>

[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]