This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: SIGSEGV in _sre.c (IRIX 6.5.20)
Type: Stage:
Components: Regular Expressions Versions: Python 2.3
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: effbot Nosy List: amaury.forgeotdarc, effbot, rwgk, tzot
Priority: normal Keywords:

Created on 2003-08-05 21:59 by rwgk, last changed 2022-04-10 16:10 by admin. This issue is now closed.

Messages (5)
msg60366 - (view) Author: Ralf W. Grosse-Kunstleve (rwgk) Date: 2003-08-05 21:59
Under IRIX (6.5.20) Python 2.3 (final) crashes with 
a core dump while executing a SCons job 
(www.scons.org). I've recompiled Python with -g but 
the behavior is the same. Here is the beginning of 
the dbx stack trace:

dbx version 7.3 MR 55458_Apr30_MR Apr 30 1999 
13:44:41
dbx Warning: Unknown processor type 0xe, 
assuming this is not an R8000
Core from signal SIGSEGV: Segmentation violation
(dbx) where
>  0 mark_save(state = <no such address>, lo = 
<no such address>, hi = 0, mark_stack_base = 
(nil)) ["/txusr/rwgrosse/selfx/Python-
Modules/_sre.c":289, 0x10107bc4]
   1 sre_match(state = 0x10840c78, pattern = 
0x10207ef0, level = 669) 
["/txusr/rwgrosse/selfx/Python-
Modules/_sre.c":979, 0x10109d74]
   2 sre_match(state = 0x10840c78, pattern = 
0x10207f10, level = 668) 
["/txusr/rwgrosse/selfx/Python-
Modules/_sre.c":1263, 0x1010ad24]
   3 sre_match(state = 0x10840c78, pattern = 
0x10207ef0, level = 667) 
["/txusr/rwgrosse/selfx/Python-
Modules/_sre.c":991, 0x10109ea0]
   4 sre_match(state = 0x10840c78, pattern = 
0x10207f10, level = 666) 
["/txusr/rwgrosse/selfx/Python-
Modules/_sre.c":1263, 0x1010ad24]
   5 sre_match(state = 0x10840c78, pattern = 
0x10207ef0, level = 665) 
["/txusr/rwgrosse/selfx/Python-
Modules/_sre.c":991, 0x10109ea0]
   6 sre_match(state = 0x10840c78, pattern = 
0x10207f10, level = 664) 
["/txusr/rwgrosse/selfx/Python-
Modules/_sre.c":1263, 0x1010ad24]

The alternation of _sre.c:991, _sre.c:1263 continues 
to the end of the dbx output which stops at 99; the 
value of level is decreasing monotonously.

To reproduce upload this file to an IRIX machine:

http://cci.lbl.gov/cctbx_build/send_octet_stream.cgi?
source=results/2003_08_04_2056/cctbx_python_23_
bundle.selfx

In a new, empty directory enter the command:

perl cctbx_python_23_bundle.selfx

When prompted enter the number of available CPU's 
and wait for the Python 2.3 installation to finish 
(log is in the file py_install_log). The newly 
compiled Python is used to start a SCons build 
procedure. The crash occurs a few files into the 
process of compiling C++ sources.

I've tried the exact same source code under Redhat 
8.0. There it finishes without a crash. Therefore I 
am thinking you will need an IRIX machine to 
reproduce the crash.
msg60367 - (view) Author: Ralf W. Grosse-Kunstleve (rwgk) Date: 2003-08-06 02:04
Logged In: YES 
user_id=71407

An additional piece of information:

I observe the crashes (reproducibly) only when using 
SCons' -j option for parallel builds, using multiple CPU's. 
I believe the -j option involves the threading module. If 
I run the build using only one CPU it finishes without a 
problem.
msg60368 - (view) Author: Χρήστος Γεωργίου (Christos Georgiou) (tzot) * Date: 2003-08-19 08:41
Logged In: YES 
user_id=539787

Ralf: what machine are you working on? Origin? Please specify 
# of CPU's, IP##.  This to help me reproduce the problem.  
Also, try somehow to discover the failing regular expression, 
and report that.

_sre.c wizards: This stack overflow happens in SRE_MATCH, 
alternating between the SRE_OP_BRANCH (line 991) and 
SRE_OP_MIN_UNTIL (line 1263).
msg60369 - (view) Author: Ralf W. Grosse-Kunstleve (rwgk) Date: 2003-08-19 13:58
Logged In: YES 
user_id=71407

Below is the output of hinv.
I have no clue how to find the regular expression without 
having a traceback. Is there some place in _sre.c where I 
could insert a print statement?


16 400 MHZ IP27 Processors
CPU: MIPS R12000 Processor Chip Revision: 3.5
FPU: MIPS R12010 Floating Point Chip Revision: 3.5
Main memory size: 4096 Mbytes
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
Secondary unified instruction/data cache size: 8 Mbytes
Integral SCSI controller 12: Version Fibre Channel AIC-
1160, revision 2
  RAID controller: unit 0 on SCSI controller 12
  RAID lun: unit 0, lun 3 on SCSI controller 12
  RAID lun: unit 0, lun 4 on SCSI controller 12
  RAID lun: unit 0, lun 5 on SCSI controller 12
Integral SCSI controller 6: Version Fibre Channel AIC-
1160, revision 2
  RAID controller: unit 0 on SCSI controller 6
  RAID lun: unit 0, lun 0 on SCSI controller 6
  RAID lun: unit 0, lun 1 on SCSI controller 6
  RAID lun: unit 0, lun 2 on SCSI controller 6
Integral SCSI controller 14: Version Fibre Channel AIC-
1160, revision 2
Integral SCSI controller 2: Version QL1040B (rev. 2), 
single ended
Integral SCSI controller 3: Version QL1040B (rev. 2), 
differential
Integral SCSI controller 4: Version QL1040B (rev. 2), 
differential
Integral SCSI controller 5: Version QL1040B (rev. 2), 
differential
Integral SCSI controller 9: Version Fibre Channel QL2200
  RAID controller: unit 0 on SCSI controller 9
  RAID lun: unit 0, lun 7 on SCSI controller 9
Integral SCSI controller 1: Version QL1040B (rev. 2), 
single ended
  Tape drive: unit 5 on SCSI controller 1: DAT
Integral SCSI controller 0: Version QL1040B (rev. 2), 
single ended
  Disk drive: unit 1 on SCSI controller 0
  Disk drive: unit 2 on SCSI controller 0
  Disk drive: unit 3 on SCSI controller 0
  CDROM: unit 6 on SCSI controller 0
Integral SCSI controller 10: Version QL1040B (rev. 2), 
single ended
  CDROM: unit 6 on SCSI controller 10
Integral SCSI controller 11: Version QL1040B (rev. 2), 
single ended
Integral SCSI controller 13: Version Fibre Channel AIC-
1160, revision 2
Integral SCSI controller 7: Version Fibre Channel AIC-
1160, revision 2
Integral SCSI controller 8: Version Fibre Channel QL2200
  RAID controller: unit 0 on SCSI controller 8
  RAID lun: unit 0, lun 0 on SCSI controller 8
  RAID lun: unit 0, lun 2 on SCSI controller 8
Integral SCSI controller 15: Version Fibre Channel AIC-
1160, revision 2
IOC3/IOC4 serial port: tty1
IOC3/IOC4 serial port: tty3
IOC3/IOC4 serial port: tty2
IOC3/IOC4 serial port: tty4
Fast Ethernet: ef1, version 1, module 2, slot io1, pci 2
Integral Fast Ethernet: ef0, version 1, module 1, slot 
io1, pci 2
Gigabit Ethernet: eg0, module 2, XIO slot io3, firmware 
version 12.4.10
ATM PCA-200E OC-3: module 1, xio_slot 2, pci_slot 0, 
unit 0
Origin PCI XIO board, module 1 slot 2: Revision 4
Origin FIBRE CHANNEL board, module 2 slot 6: Revision 4
Origin FIBRE CHANNEL board, module 1 slot 7: Revision 4
Origin MSCSI board, module 1 slot 8: Revision 4
Origin FIBRE CHANNEL board, module 2 slot 10: Revision 
4
Origin BASEIO board, module 1 slot 1: Revision 4
Origin BASEIO board, module 2 slot 1: Revision 4
IOC3/IOC4 external interrupts: 2
IOC3/IOC4 external interrupts: 1
msg76895 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2008-12-04 16:43
This looks like a stack overflow to me, and the re module is no longer
recursive since python2.4.
History
Date User Action Args
2022-04-10 16:10:29adminsetgithub: 39014
2008-12-04 16:43:29amaury.forgeotdarcsetstatus: open -> closed
resolution: out of date
messages: + msg76895
nosy: + amaury.forgeotdarc
2003-08-05 21:59:17rwgkcreate