[Python-Dev] segfault in sre on 64-bit plats

Trent Mick trentm@ActiveState.com
Tue, 15 Aug 2000 10:47:23 -0700


Fredrik,

The sre module currently segfaults on one of the tests suite tests on both
Win64 and 64-bit linux:

    [trentm@nickel src]$ ./python -c "import sre; sre.match('(x)*', 50000*'x')" > srefail.out
    Segmentation fault (core dumped)

I know that I can't expect you to debug this completely, as you don't have to
hardware, but I was hoping you might be able to shed some light on the
subject for me.

This test on Win32 and Linux32 hits the recursion limit check of 10000 in
SRE_MATCH(). However, on Linux64 the segfault occurs at a recursion depth of
7500. I don't want to just willy-nilly drop the recursion limit down to make
the problem go away.

Do you have any idea why the segfault may be occuring on 64-bit platforms?

Mark (Favas), have you been having any problems with sre on your 64-bit plats?


In the example above I turned VERBOSE on in _sre.c. WOuld the trace help you?
Here is the last of it (the whole thing is 2MB so I am not sending it all):

    copy 0:1 to 15026 (2)
    |0x600000000020b90c|0x6000000000200d72|ENTER 7517
    |0x600000000020b90e|0x6000000000200d72|MARK 0
    |0x600000000020b912|0x6000000000200d72|LITERAL 120
    |0x600000000020b916|0x6000000000200d73|MARK 1
    |0x600000000020b91a|0x6000000000200d73|MAX_UNTIL 7515
    copy 0:1 to 15028 (2)
    |0x600000000020b90c|0x6000000000200d73|ENTER 7518
    |0x600000000020b90e|0x6000000000200d73|MARK 0
    |0x600000000020b912|0x6000000000200d73|LITERAL 120
    |0x600000000020b916|0x6000000000200d74|MARK 1
    |0x600000000020b91a|0x6000000000200d74|MAX_UNTIL 7516
    copy 0:1 to 15030 (2)
    |0x600000000020b90c|0x6000000000200d74|ENTER 7519
    |0x600000000020b90e|0x6000000000200d74|MARK 0
    |0x600000000020b912|0x6000000000200d74|LITERAL 120
    |0x600000000020b916|0x6000000000200d75|MARK 1
    |0x600000000020b91a|0x6000000000200d75|MAX_UNTIL 7517
    copy 0:1 to 15032 (2)
    |0x600000000020b90c|0x6000000000200d75|ENTER 7520
    |0x600000000020b90e|0x6000000000200d75|MARK 0
    |0x600000000020b912|0x6000000000200d75|LITERAL 120
    |0x600000000020b916|0x6000000000200d76|MARK 1
    |0x600000000020b91a|0x6000000000200d76|MAX_UNTIL 7518
    copy 0:1 to 15034 (2)
    |0x600000000020b90c|0x6000000000200d76|ENTER 7521
    |0x600000000020b90e|0x6000000000200d76|MARK 0
    |0x600000000020b912|0x6000000000200d76|LITERAL 120
    |0x600000000020b916|0x6000000000200d77|MARK 1
    |0x600000000020b91a|0x6000000000200d77|MAX_UNTIL 7519
    copy 0:1 to 15036 (2)
    |0x600000000020b90c|0x600



Thanks,
Trent

-- 
Trent Mick
TrentM@ActiveState.com