[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