[ clisp-Bugs-3555549 ] Segfault for errors signaled inside threads

SourceForge.net <[email protected]>
Newsgroups gmane.lisp.clisp.devel
Message-ID <[email protected]>
Bugs item #3555549, was opened at 2012-08-08 22:42
Message generated for change (Tracker Item Submitted) made by 
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=101355&aid=3555549&group_id=1355

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: multithreading
Group: segfault
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: lmj ()
Assigned to: Vladimir Tzankov (vtz)
Summary: Segfault for errors signaled inside threads

Initial Comment:
    (loop
       :repeat 16
       :do (mt:make-thread (lambda () (error "foo!"))))
    (sleep 999)

changeset 15591:a54e2c41e396

./configure --with-debug --prefix=/home/jlawrence/usr/stow/clisp-dev-dbg --with-threads=POSIX_THREADS

Linux xi 3.2.0-24-generic-pae #39-Ubuntu SMP Mon May 21 18:54:21 UTC 2012 i686 i686 i386 GNU/Linux

gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

STACK size: 98206 [0xb74c2f00 0xb7463088]
GNU CLISP 2.49+ (2010-07-17) (built 3553466823) (memory 3553466941)
Software: GNU C 4.6.3 
gcc -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wreturn-type -Wmissing-declarations -Wimplicit -Wno-sign-compare -Wno-format-nonliteral -falign-functions=4 -pthread -g -O0 -DDEBUG_OS_ERROR -DDEBUG_SPVW -DDEBUG_BYTECODE -DSAFETY=3 -DENABLE_UNICODE -DMULTITHREAD -DPOSIX_THREADS -DDYNAMIC_MODULES  libgnu.a  -lreadline -lncurses -ldl   -lsigsegv  
SAFETY=3 HEAPCODES LINUX_NOEXEC_HEAPCODES SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY
libsigsegv 2.9
libreadline 6.2
Features: 
(REGEXP WILDCARD SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER
 LOGICAL-PATHNAMES MT SOCKETS GENERIC-STREAMS SCREEN GETTEXT UNICODE BASE-CHAR=CHARACTER PC386 UNIX)
C Modules: (clisp i18n syscalls regexp)
Installation directory: /home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/
User language: ENGLISH
Machine: I686 (I686) xi [127.0.1.1]

Sample runs with the above code invoked as a script:

======================

STACK size: 98206 [0xb7527f00 0xb74c8088]
*** - 
*** - Segmentation fault (core dumped)

======================

STACK size: 98206 [0xb74f5f00 0xb7496088]
*** - 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
*** - 
*** - 
*** - 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
*** - 
*** - 
*** - 
[eval.d:6557] 
*** - 
[eval.d:6557] 
[eval.d:6557] 
*** - 
[eval.d:6557] 
[eval.d:6557] 
*** - 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
[eval.d:6557] 
*** - 
*** - #<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER>:
    #<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER>jump    #<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER>by:

     -8567        jump:  takes byjump  by38 -8567   outsidetakes-8567  [takes 3810


            38      ;outside  outside[37 []10
10;;3737]
]
#<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER>: jump by -8567 takes 38
*** - 
      outside [
[eval.d:6557] 10;37#<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER>]
: jump byfoo! 
-8567 takes#<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER> 38

======================

STACK size: 98206 [0xb74c1f00 0xb7462088]
*** - 
*** - 
[eval.d:6458] 
*** - 

[eval.d:6458] *** - 
[eval.d:6458] 
[eval.d:6458] 
[eval.d:6458] 
*** - 
*** - 
[eval.d:6458] 
*** - 
[eval.d:6458] 
[eval.d:6458] 
*** - 
*** - 
*** - 
*** - 
*** - 
*** - 
*** - 
*** - 
*** - Corrupted STACK inCorrupted
[eval.d:6458]  STACKCorrupted  inSTACK inCLOS::STD-ADD-METHOD
:      #<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER> at byte 26
 #<STANDARD-METHOD PROGN (#<STANDARD-CLASS ERROR>)> already belongs to
      #<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER>, cannot also add it to
      #<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER>Corrupted STACK infoo!

======================

STACK size: 98206 [0xb7446f00 0xb73e7088]
*** - 
[eval.d:7287] 
[eval.d:7287] 
[eval.d:7287] 
[eval.d:7287] 
[eval.d:7287] 
[eval.d:7287] 
[eval.d:7287] 
[eval.d:7287] 
*** - 
[eval.d:7287] 
*** - 
[eval.d:7287] 
[eval.d:7287] 
*** - 
*** - 
*** - 
*** - 

*** - *** - 
*** - 
*** - 
*** - 
*** - 
[eval.d:7287] 
*** - 
*** - 
*** - Corrupted STACK inCorrupted STACK in
      #<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER> atCorrupted  STACK inbyte

       #<STANDARD-GENERIC-FUNCTION SYSTEM::GLOBAL-HANDLER>     at  byte25 25

foo!

======================

$ ~/usr/stow/clisp-dev-dbg/bin/clisp -norc
STACK size: 98206 [0xb7457f00 0xb73f8088]
  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Welcome to GNU CLISP 2.49+ (2010-07-17) <http://clisp.org/>

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010

Type :h and hit Enter for context help.

[1]>     (loop
       :repeat 16
       :do (mt:make-thread (lambda () (error "foo!"))))
NIL
[2]> 
*** - 
*** - 
*** - 

*** - *** - 
*** - 
*** - 

*** - *** - 
*** - 
*** - 
*** - 
*** - 
*** - 
*** - 
*** - foo!foo!
Break 1 [1]> foo!
Break 1 [1]> 
Break 1 [1]> foo!
Break 1 [1]> foo!
Break 1 [1]> foo!foo!
Break 1 [1]> foo!foo!
Break 1 [1]> foo!
Break 1 [1]> foo!foo!
foo!Break 1 [1]> 
Break 1 [1]> 
Break 1 [1]> Break 1 [1]> *** glibc detected *** /home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run: double free or corruption (fasttop): 0xb4100468 ***

Break 1 [1]> ======= Backtrace: =========
foo!/lib/i386-linux-gnu/libc.so.6(+0x73e42)[0xb74cde42]
foo!/lib/i386-linux-gnu/libreadline.so.6(rl_set_prompt+0x32)[0xb764e1e2]
/lib/i386-linux-gnu/libreadline.so.6(readline+0x27)[0xb764f2b7]

Break 1 [1]> /home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x8118a34]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(read_line+0xe8)[0x
Break 1 [1]> foo!/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(C_read_line+0x43)[0x814269b]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80b810f]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(funcall+0x30)[0x80b72ac]

Break 1 [1]> /home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x81c3a2b]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(C_read_eval_print+0xf)[0x81c4c93]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80b810f]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(funcall+0xba)[0x80b7336]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80bd071]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80b932c]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(funcall+0x5f)[0x80b72db]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(C_same_env_as+0x45)[0x81c75d1]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80b810f]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(funcall+0xba)[0x80b7336]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80bd071]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80b932c]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(funcall+0x5f)[0x80b72db]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(C_driver+0xc4)[0x80d0244]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80bd212]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80b932c]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(funcall+0x5f)[0x80b72db]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(C_invoke_debugger+0x316)[0x81cd892]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80b810f]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(funcall+0x30)[0x80b72ac]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x81cb1cf]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(C_defclcs+0x0)[0x81ccc94]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80b1e50]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80af99f]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(eval+0x1aa)[0x80af3c2]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80ae869]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x80b9492]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run(funcall+0x5f)[0x80b72db]
/home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run[0x8236a45]
/lib/i386-linux-gnu/libpthread.so.0(+0x6d4c)[0xb7606d4c]
/lib/i386-linux-gnu/libc.so.6(clone+0x5e)[0xb7544ace]
======= Memory map: ========
08048000-08312000 r-xp 00000000 08:01 97916461   /home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run
08312000-08314000 r-xp 002c9000 08:01 97916461   /home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run
08314000-08331000 rwxp 002cb000 08:01 97916461   /home/jlawrence/usr/stow/clisp-dev-dbg/lib/clisp-2.49+/base/lisp.run
08331000-08334000 rwxp 00000000 00:00 0 
09c4f000-09c70000 rwxp 00000000 00:00 0          [heap]
219db000-21ba9000 rwxp 00000000 00:00 0 
685ab000-68676000 rwxp 00000000 00:00 0 
b3d00000-b3d21000 rwxp 00000000 00:00 0 
b3d21000-b3e00000 ---p 00000000 00:00 0 
b3f00000-b3f21000 rwxp 00000000 00:00 0 
b3f21000-b4000000 ---p 00000000 00:00 0 
b4000000-b4021000 rwxp 00000000 00:00 0 
b4021000-b4100000 ---p 00000000 00:00 0 
b4100000-b4121000 rwxp 00000000 00:00 0 
b4121000-b4200000 ---p 00000000 00:00 0 
b4200000-b4221000 rwxp 00000000 00:00 0 
b4221000-b4300000 ---p 00000000 00:00 0 
b4300000-b4321000 rwxp 00000000 00:00 0 
b4321000-b4400000 ---p 00000000 00:00 0 
b4400000-b4421000 rwxp 00000000 00:00 0 
b4421000-b4500000 ---p 00000000 00:00 0 
b4500000-b4521000 rwxp 00000000 00:00 0 
b4521000-b4600000 ---p 00000000 00:00 0 
b4600000-b4621000 rwxp 00000000 00:00 0 
b4621000-b4700000 ---p 00000000 00:00 0 
b4700000-b4721000 rwxp 00000000 00:00 0 
b4721000-b4800000 ---p 00000000 00:00 0 
b4800000-b4821000 rwxp 00000000 00:00 0 
b4821000-b4900000 ---p 00000000 00:00 0 
b4900000-b4921000 rwxp 00000000 00:00 0 
b4921000-b4a00000 ---p 00000000 00:00 0 
b4a00000-b4a21000 rwxp 00000000 00:00 0 
b4a21000-b4b00000 ---p 00000000 00:00 0 
b4b00000-b4b21000 rwxp 00000000 00:00 0 
b4b21000-b4c00000 ---p 00000000 00:00 0 
b4cb0000-b4cb1000 ---p 00000000 00:00 0 
b4cb1000-b4e11000 rwxp 00000000 00:00 0 
b4e11000-b4e12000 ---p 00000000 00:00 0 
b4e12000-b4f72000 rwxp 00000000 00:00 0 
b4f72000-b4f73000 ---p 00000000 00:00 0 
b4f73000-b50d3000 rwxp 00000000 00:00 0 
b50d3000-b50d4000 ---p 00000000 00:00 0 
b50d4000-b5234000 rwxp 00000000 00:00 0 
b5234000-b5235000 ---p 00000000 00:00 0 
b5235000-b5395000 rwxp 00000000 00:00 0 
b5395000-b5396000 ---p 00000000 00:00 0 
b5396000-b54f6000 rwxp 00000000 00:00 0 
b54f6000-b54f7000 ---p 00000000 00:00 0 
b54f7000-b5657000 rwxp 00000000 00:00 0 
b5657000-b5658000 ---p 00000000 00:00 0 
b5658000-b57b8000 rwxp 00000000 00:00 0 
b57b8000-b57b9000 ---p 00000000 00:00 0 
b57b9000-b5919000 rwxp 00000000 00:00 0 
b5919000-b591a000 ---p 00000000 00:00 0 
b591a000-b5a7a000 rwxp 00000000 00:00 0 
b5a7a000-b5a7b000 ---p 00000000 00:00 0 
b5a7b000-b5bdb000 rwxp 00000000 00:00 0 
b5bdb000-b5bdc000 ---p 00000000 00:00 0 
b5bdc000-b5d3c000 rwxp 00000000 00:00 0 
b5d3c000-b5d3d000 ---p 00000000 00:00 0 
b5d3d000-b5e9d000 rwxp 00000000 00:00 0 
b5e9d000-b5e9e000 ---p 00000000 00:00 0 
b5e9e000-b5ffe000 rwxp 00000000 00:00 0 
b5ffe000-b5fff000 ---p 00000000 00:00 0 
b5fff000-b60ff000 rwxp 00000000 00:00 0 
b60ff000-b6100000 ---p 00000000 00:00 0 
b6100000-b6200000 rwxp 00000000 00:00 0 
b6200000-b6225000 rwxp 00000000 00:00 0 
b6225000-b6300000 ---p 00000000 00:00 0 
b6337000-b63f7000 rwxp 00000000 00:00 0 
b63f7000-b63f8000 ---p 00000000 00:00 0 
b63f8000-b745a000 rwxp 00000000 00:00 0 
b745a000-b75f9000 r-xp 00000000 08:01 62915487   /lib/i386-linux-gnu/libc-2.15.so
b75f9000-b75fb000 r-xp 0019f000 08:01 62915487   /lib/i386-linux-gnu/libc-2.15.so
b75fb000-b75fc000 rwxp 001a1000 08:01 62915487   /lib/i386-linux-gnu/libc-2.15.so
b75fc000-b7600000 rwxp 00000000 00:00 0 
b7600000-b7617000 r-xp 00000000 08:01 62915567   /lib/i386-linux-gnu/libpthread-2.15.so
b7617000-b7618000 r-xp 00016000 08:01 62915567   /lib/i386-linux-gnu/libpthread-2.15.so
b7618000-b7619000 rwxp 00017000 08:01 62915567   /lib/i386-linux-gnu/libpthread-2.15.so
b7619000-b761b000 rwxp 00000000 00:00 0 
b761b000-b761d000 r-xp 00000000 08:01 52700192   /usr/lib/libsigsegv.so.2.0.2
b761d000-b761e000 r-xp 00001000 08:01 52700192   /usr/lib/libsigsegv.so.2.0.2
b761e000-b761f000 rwxp 00002000 08:01 52700192   /usr/lib/libsigsegv.so.2.0.2
b761f000-b7622000 r-xp 00000000 08:01 62915500   /lib/i386-linux-gnu/libdl-2.15.so
b7622000-b7623000 r-xp 00002000 08:01 62915500   /lib/i386-linux-gnu/libdl-2.15.so
b7623000-b7624000 rwxp 00003000 08:01 62915500   /lib/i386-linux-gnu/libdl-2.15.so
b7624000-b7640000 r-xp 00000000 08:01 62915584   /lib/i386-linux-gnu/libtinfo.so.5.9
b7640000-b7642000 r-xp 0001b000 08:01 62915584   /lib/i386-linux-gnu/libtinfo.so.5.9
b7642000-b7643000 rwxp 0001d000 08:01 62915584   /lib/i386-linux-gnu/libtinfo.so.5.9
b7643000-b7678000 r-xp 00000000 08:01 62915570   /lib/i386-linux-gnu/libreadline.so.6.2
b7678000-b7679000 r-xp 00035000 08:01 62915570   /lib/i386-linux-gnu/libreadline.so.6.2
b7679000-b767c000 rwxp 00036000 08:01 62915570   /lib/i386-linux-gnu/libreadline.so.6.2
b767c000-b767e000 rwxp 00000000 00:00 0 
b767e000-b7686000 r-xp 00000000 08:01 62915495   /lib/i386-linux-gnu/libcrypt-2.15.so
b7686000-b7687000 r-xp 00007000 08:01 62915495   /lib/i386-linux-gnu/libcrypt-2.15.so
b7687000-b7688000 rwxp 00008000 08:01 62915495   /lib/i386-linux-gnu/libcrypt-2.15.so
b7688000-b76af000 rwxp 00000000 00:00 0 
b76af000-b76d9000 r-xp 00000000 08:01 62915519   /lib/i386-linux-gnu/libm-2.15.so
b76d9000-b76da000 r-xp 00029000 08:01 62915519   /lib/i386-linux-gnu/libm-2.15.so
b76da000-b76db000 rwxp 0002a000 08:01 62915519   /lib/i386-linux-gnu/libm-2.15.so
b76db000-b76f7000 r-xp 00000000 08:01 62915508   /lib/i386-linux-gnu/libgcc_s.so.1
b76f7000-b76f8000 r-xp 0001b000 08:01 62915508   /lib/i386-linux-gnu/libgcc_s.so.1
b76f8000-b76f9000 rwxp 0001c000 08:01 62915508   /lib/i386-linux-gnu/libgcc_s.so.1
b76f9000-b76fd000 rwxp 00000000 00:00 0 
b76fd000-b76fe000 r-xp 00000000 00:00 0          [vdso]
b76fe000-b771e000 r-xp 00000000 08:01 62915467   /lib/i386-linux-gnu/ld-2.15.so
b771e000-b771f000 r-xp 0001f000 08:01 62915467   /lib/i386-linux-gnu/ld-2.15.so
b771f000-b7720000 rwxp 00020000 08:01 62915467   /lib/i386-linux-gnu/ld-2.15.so
bf7e2000-bf803000 rwxp 00000000 00:00 0          [stack]
Abort (core dumped)


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=101355&aid=3555549&group_id=1355

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.