recursive signal handling

Tony Kimball alk@pobox.com
Fri Jul 13 11:12:00 GMT 2001


This amusing little stack trace illustrates what I deem to be a
problem.  Is there a good reason why the signal handler
is reinstated during execution?  That's usually considered a bad idea.

#0  _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, 
    source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176
#1  0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0)
    at ../../../branch/libjava/java/lang/natClass.cc:996
#2  0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, 
    exception_class=5138137972373280321, ue_header=0x842b160, 
    context=0xbe5fd710) at ../../../branch/libjava/exception.cc:361
#3  0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b160)
    at ../../branch/gcc/unwind-sjlj.c:376
#4  0x080bad48 in _Jv_Throw (value=0x82ccff0)
    at ../../../branch/libjava/exception.cc:110
#5  0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120
#6  0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129
#7  0x0818bf1b in pthread_sighandler (signo=11, ctx=
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193952996, esp = 3193952972, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193952972, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97
#8  <signal handler called>
#9  _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, 
    source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176
#10 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0)
    at ../../../branch/libjava/java/lang/natClass.cc:996
#11 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, 
    exception_class=5138137972373280321, ue_header=0x842b1e0, 
    context=0xbe5fdba8) at ../../../branch/libjava/exception.cc:361
#12 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b1e0)
    at ../../branch/gcc/unwind-sjlj.c:376
#13 0x080bad48 in _Jv_Throw (value=0x82ccff0)
    at ../../../branch/libjava/exception.cc:110
#14 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120
#15 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129
#16 0x0818bf1b in pthread_sighandler (signo=11, ctx=
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193954172, esp = 3193954148, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193954148, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97
#17 <signal handler called>
#18 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, 
    source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176
#19 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0)
    at ../../../branch/libjava/java/lang/natClass.cc:996
#20 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, 
    exception_class=5138137972373280321, ue_header=0x842b220, 
    context=0xbe5fe040) at ../../../branch/libjava/exception.cc:361
#21 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b220)
    at ../../branch/gcc/unwind-sjlj.c:376
#22 0x080bad48 in _Jv_Throw (value=0x82ccff0)
    at ../../../branch/libjava/exception.cc:110
#23 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120
#24 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129
#25 0x0818bf1b in pthread_sighandler (signo=11, ctx=
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193955348, esp = 3193955324, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193955324, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97
#26 <signal handler called>
#27 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, 
    source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176
#28 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0)
    at ../../../branch/libjava/java/lang/natClass.cc:996
#29 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, 
    exception_class=5138137972373280321, ue_header=0x842b260, 
    context=0xbe5fe4d8) at ../../../branch/libjava/exception.cc:361
#30 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b260)
    at ../../branch/gcc/unwind-sjlj.c:376
#31 0x080bad48 in _Jv_Throw (value=0x82ccff0)
    at ../../../branch/libjava/exception.cc:110
#32 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120
#33 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129
#34 0x0818bf1b in pthread_sighandler (signo=11, ctx=
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193956524, esp = 3193956500, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193956500, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97
#35 <signal handler called>
#36 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, 
    source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176
#37 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0)
    at ../../../branch/libjava/java/lang/natClass.cc:996
#38 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, 
    exception_class=5138137972373280321, ue_header=0x842b460, 
    context=0xbe5fe970) at ../../../branch/libjava/exception.cc:361
#39 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b460)
    at ../../branch/gcc/unwind-sjlj.c:376
#40 0x080bad48 in _Jv_Throw (value=0x82ccff0)
    at ../../../branch/libjava/exception.cc:110
#41 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120
#42 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129
#43 0x0818bf1b in pthread_sighandler (signo=11, ctx=
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193957700, esp = 3193957676, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193957676, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97
#44 <signal handler called>
#45 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, 
    source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176
#46 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0)
    at ../../../branch/libjava/java/lang/natClass.cc:996
#47 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, 
    exception_class=5138137972373280321, ue_header=0x842b4a0, 
    context=0xbe5fee08) at ../../../branch/libjava/exception.cc:361
#48 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b4a0)
    at ../../branch/gcc/unwind-sjlj.c:376
#49 0x080bad48 in _Jv_Throw (value=0x82ccff0)
    at ../../../branch/libjava/exception.cc:110
#50 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120
#51 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129
#52 0x0818bf1b in pthread_sighandler (signo=11, ctx=
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh  
= 0, edi = 0, esi = 0, ebp = 3193958876, esp = 3193958852, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193958852, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97
#53 <signal handler called>
#54 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, 
    source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176
#55 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0)
    at ../../../branch/libjava/java/lang/natClass.cc:996
#56 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, 
    exception_class=5138137972373280321, ue_header=0x842b520, 
    context=0xbe5ff2a0) at ../../../branch/libjava/exception.cc:361
#57 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b520)
    at ../../branch/gcc/unwind-sjlj.c:376
#58 0x080bad48 in _Jv_Throw (value=0x82ccff0)
    at ../../../branch/libjava/exception.cc:110
#59 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120
#60 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129
#61 0x0818bf1b in pthread_sighandler (signo=11, ctx=
      {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193960052, esp = 3193960028, ebx = 1, edx = 137874177, ecx = 136714944, eax = 136714944, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193960028, ss = 43, __ssh = 
 0, fpstate = 0xbe5ff3e0, oldmask = 2147483648, cr2 = 12}) at signals.c:97
#62 <signal handler called>
#63 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, 
    source=0x8261ac0) at ../../../branch/libjava/java/lang/Class.h:176
#64 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x837cb88, cl=0x0)
    at ../../../branch/libjava/java/lang/natClass.cc:996
#65 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, 
    exception_class=5138137972373280321, ue_header=0x842b560, 
    context=0xbe5ff738) at ../../../branch/libjava/exception.cc:361
#66 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b560)
    at ../../branch/gcc/unwind-sjlj.c:376
#67 0x080bad48 in _Jv_Throw (value=0x837cb88)
    at ../../../branch/libjava/exception.cc:110
#68 0x0814ae9c in java::util::ResourceBundle::getBundle(java::lang::String*, java::util::Locale*, java::lang::ClassLoader*) ()
    at ../../../branch/libjava/java/util/ResourceBundle.java:206
#69 0x0814ad7d in java.util.ResourceBundle.getBundle(java.lang.String, java.util.Locale) (baseName=0x82cec30, locale=0x837a540)
    at ../../../branch/libjava/java/util/ResourceBundle.java:183
#70 0x0816c2cb in java.util.Calendar.getInstance(java.util.TimeZone, java.util.Locale) (zone=0x82ce410, locale=0x837a540)
    at ../../../branch/libjava/java/util/Calendar.java:423
#71 0x0816c00a in java.util.Calendar.getInstance() ()
    at ../../../branch/libjava/java/util/Calendar.java:391
#72 0x08142fd4 in java.util.Date.toString() (this=0x837ac90)
    at ../../../branch/libjava/java/util/Date.java:258
#73 0x080f6fdc in java.util.Properties.store(java.io.OutputStream, java.lang.String) (this=0x83607a0, out=0x8379690, header=0x0)
    at ../../../branch/libjava/java/util/Properties.java:308
#74 0x080a0665 in com.swarmcast.util.AsyncPersistentProps.run() (
    this=0x8376df8) at com/swarmcast/util/AsyncPersistentProps.java:98
#75 0x080d4114 in java.lang.Thread.run() (this=0x844d320)
    at ../../../branch/libjava/java/lang/Thread.java:134
#76 0x080c48d1 in java::lang::Thread::run_(java::lang::Object*) (obj=0x844d320)
    at ../../../branch/libjava/java/lang/natThread.cc:276
#77 0x0811efe2 in really_start(void*) (x=0x8443fb0)
    at ../../../branch/libjava/posix-threads.cc:374
#78 0x0817bc28 in GC_start_routine (arg=0x8444fe0)
    at ../../../branch/boehm-gc/linux_threads.c:1305
#79 0x08189ec0 in pthread_start_thread_event (arg=0xbe5ffc00) at manager.c:274



More information about the Java mailing list