Hi everybody,
     Sorry if this is bothering you but i need help while using Blackdown JDK 1.2.2 
RC4.
     While i am using JDK 1.2.2 RC4 on RedHat 6.2 Linux with glibc2.1.3, i am facing 
very peculiar problem. Due to memory alloc failure, the garbage collector starts and 
hangs the daemon. It seems from the stack traces that it is waiting for some socket 
read to happen. In this context, i have some clarifications.

1. Does the garbage collector wait until all the JVM threads goes into _sig_suspend 
state to start its processing?
2. If i have some threadpool and i load JVM into my daemon address space, will garbage 
collector set thread pool threads also to sig_suspend state? I am assuiming it will 
only suspend the threads spawned from JVM.
3. What is the algorithm for suspending the threads? I heard in Solaris 
implementation, it will garbage collector will suspend all other threads throw some 
lwp suspend mechanisms after storing pertinent thread data and then does garbage 
collection.

4. I have configured 64 MB of heap space and it looks like it is eaten away during 
initialization itself. Does the max heap size parameter that i pass take effect when i 
am invoking through JNI interface in Blackdown JDK?

I am attaching stack snapshots of my program. Any inputs, pointers and other help 
would appreciated. 

(gdb) thread 9
[Switching to thread 9 (Thread 21977)]
#0  0x40498d1b in __sigsuspend (set=0xbebff5d8) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
48      in ../sysdeps/unix/sysv/linux/sigsuspend.c
(gdb) where
#0  0x40498d1b in __sigsuspend (set=0xbebff5d8) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
#1  0x4040fc22 in __pthread_wait_for_restart_signal (self=0xbebffe40) at pthread.c:785
#2  0x4040c960 in pthread_cond_wait (cond=0x40d0d0c8, mutex=0x40d0d0b0) at restart.h:26
#3  0x40c08da9 in condvarWait (condvar=0x40d0d0c8, mutex=0x40d0d0b0, 
wtype=CONDVAR_WAIT)
    at ../../../../../src/linux/hpi/native_threads/src/condvar_md.c:89
#4  0x40c07ff5 in sysMonitorWait (self=0x817eca8, mid=0x40d0d0b0, millis=-1)
    at ../../../../../src/linux/hpi/native_threads/src/monitor_md.c:274
#5  0x40be3b1a in monitorWait2 (ee=0x817ec28, key=1101657160, millis=-1)
    at ../../../../src/share/javavm/runtime/monitor_cache.c:873
#6  0x40bd4f6a in JVM_MonitorWait (env=0x817ec28, obj=0x817ee8c, millis=0)
    at ../../../../src/share/javavm/runtime/jvm.c:1424
#7  0x40beedcd in args_done () from 
/home/tramesh/java/java1.2/jre/lib/i686/classic/libjvm.so
#8  0x40bb428d in invokeJNINativeMethod (o=0x41a9f448, mb=0x40d86b50, args_size=3, 
ee=0x817ec28)
    at ../../../../src/share/javavm/runtime/classruntime.c:493
#9  0x40bf5783 in ivqw_not_ijn6 () from 
/home/tramesh/java/java1.2/jre/lib/i686/classic/libjvm.so
#10 0x41aa0110 in ?? ()
#11 0x81854c0 in ?? ()


(gdb) thread 18
[Switching to thread 18 (Thread 21986)]
#0  0x40498d1b in __sigsuspend (set=0xbd9ffb30) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
48      in ../sysdeps/unix/sysv/linux/sigsuspend.c
(gdb) where
#0  0x40498d1b in __sigsuspend (set=0xbd9ffb30) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
#1  0x4040fc22 in __pthread_wait_for_restart_signal (self=0xbd9ffe40) at pthread.c:785
#2  0x40410db4 in __new_sem_wait (sem=0x40c027a0) at restart.h:26
#3  0x40c081fa in jdk_sem_wait (sem=0x40c027a0)
    at ../../../../../src/linux/hpi/native_threads/src/threads_md.c:124
#4  0x40bedd2d in sigquit_thread (arg=0x41a993e0)
    at ../../../../src/linux/javavm/runtime/signals_md.c:494
#5  0x40be46e0 in saveStackBase (args=0x40bedc9c)
    at ../../../../src/share/javavm/runtime/threads.c:141
#6  0x40c085ac in _start (tid_=0x40dbd198)
    at ../../../../../src/linux/hpi/native_threads/src/threads_md.c:363
#7  0x4040db25 in pthread_start_thread (arg=0xbd9ffe40) at manager.c:241



(gdb) thread 19
[Switching to thread 19 (Thread 21987)]
#0  0x40498d1b in __sigsuspend (set=0xbd7ff968) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
48      in ../sysdeps/unix/sysv/linux/sigsuspend.c
(gdb) where
#0  0x40498d1b in __sigsuspend (set=0xbd7ff968) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
#1  0x4040fc22 in __pthread_wait_for_restart_signal (self=0xbd7ffe40) at pthread.c:785
#2  0x4040c960 in pthread_cond_wait (cond=0x40d0d448, mutex=0x40d0d430) at restart.h:26
#3  0x40c08da9 in condvarWait (condvar=0x40d0d448, mutex=0x40d0d430, 
wtype=CONDVAR_WAIT)
    at ../../../../../src/linux/hpi/native_threads/src/condvar_md.c:89
#4  0x40c07ff5 in sysMonitorWait (self=0x40db78c0, mid=0x40d0d430, millis=-1)
    at ../../../../../src/linux/hpi/native_threads/src/monitor_md.c:274
#5  0x40be3b1a in monitorWait2 (ee=0x40db7840, key=1101632448, millis=-1)
    at ../../../../src/share/javavm/runtime/monitor_cache.c:873
#6  0x40bd4f6a in JVM_MonitorWait (env=0x40db7840, obj=0x40dbfe80, millis=0)
    at ../../../../src/share/javavm/runtime/jvm.c:1424
#7  0x40beedcd in args_done () from 
/home/tramesh/java/java1.2/jre/lib/i686/classic/libjvm.so
#8  0x40bb428d in invokeJNINativeMethod (o=0x41a993c0, mb=0x40d86b50, args_size=3, 
ee=0x40db7840)
    at ../../../../src/share/javavm/runtime/classruntime.c:493
#9  0x40bf5783 in ivqw_not_ijn6 () from 
/home/tramesh/java/java1.2/jre/lib/i686/classic/libjvm.so
#10 0x0 in ?? ()



(gdb) thread 20
[Switching to thread 20 (Thread 21988)]
#0  0x40498d1b in __sigsuspend (set=0xbd5ff968) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
48      in ../sysdeps/unix/sysv/linux/sigsuspend.c
(gdb) where
#0  0x40498d1b in __sigsuspend (set=0xbd5ff968) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
#1  0x4040fc22 in __pthread_wait_for_restart_signal (self=0xbd5ffe40) at pthread.c:785
#2  0x4040c960 in pthread_cond_wait (cond=0x40d0d708, mutex=0x40d0d6f0) at restart.h:26
#3  0x40c08da9 in condvarWait (condvar=0x40d0d708, mutex=0x40d0d6f0, 
wtype=CONDVAR_WAIT)
    at ../../../../../src/linux/hpi/native_threads/src/condvar_md.c:89
#4  0x40c07ff5 in sysMonitorWait (self=0x40dbdbd8, mid=0x40d0d6f0, millis=-1)
    at ../../../../../src/linux/hpi/native_threads/src/monitor_md.c:274
#5  0x40be3b1a in monitorWait2 (ee=0x40dbdb58, key=1101632312, millis=-1)
    at ../../../../src/share/javavm/runtime/monitor_cache.c:873
#6  0x40bd4f6a in JVM_MonitorWait (env=0x40dbdb58, obj=0x40dc26b8, millis=0)
    at ../../../../src/share/javavm/runtime/jvm.c:1424
#7  0x40beedcd in args_done () from 
/home/tramesh/java/java1.2/jre/lib/i686/classic/libjvm.so
#8  0x40bb428d in invokeJNINativeMethod (o=0x41a99338, mb=0x40d86b50, args_size=3, 
ee=0x40dbdb58)
    at ../../../../src/share/javavm/runtime/classruntime.c:493
#9  0x40bf5783 in ivqw_not_ijn6 () from 
/home/tramesh/java/java1.2/jre/lib/i686/classic/libjvm.so
#10 0x0 in ?? ()



(gdb) thread 21
[Switching to thread 21 (Thread 21989)]
#0  0x40498d1b in __sigsuspend (set=0xbd3ff9f4) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
48      in ../sysdeps/unix/sysv/linux/sigsuspend.c
(gdb) where
#0  0x40498d1b in __sigsuspend (set=0xbd3ff9f4) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
#1  0x4040fc22 in __pthread_wait_for_restart_signal (self=0xbd3ffe40) at pthread.c:785
#2  0x40410db4 in __new_sem_wait (sem=0x40c0cc18) at restart.h:26
#3  0x40c0a6ee in np_suspend (tid=0x4506dd98)
    at ../../../../../src/linux/hpi/native_threads/src/threads_linux.c:227
#4  0x40c0a806 in np_single () at 
../../../../../src/linux/hpi/native_threads/src/threads_linux.c:317
#5  0x40c08a5f in sysThreadSingle ()
    at ../../../../../src/linux/hpi/native_threads/src/threads_md.c:765
#6  0x40bbabc1 in gc0 (free_space_goal=8200, clear_soft_refs=FALSE)
    at ../../../../src/share/javavm/runtime/gc.c:5045
#7  0x40bb7621 in manageAllocFailure (n=8200, overflow_type=1, overflow_act=1)
    at ../../../../src/share/javavm/runtime/gc.c:2393
#8  0x40bb6d46 in realObjAlloc (ee=0x81cc910, mptr=0x40008, n=8200)
    at ../../../../src/share/javavm/runtime/gc.c:1225
#9  0x40bb6b37 in cacheAlloc (ee=0x81cc910, mptr=0x40008, size=8192)
    at ../../../../src/share/javavm/runtime/gc.c:824
#10 0x40bb6ee8 in allocArray (ee=0x81cc910, t=8, l=8192)
    at ../../../../src/share/javavm/runtime/gc.c:1403
#11 0x40bf4cbb in N1_newarray6 () from 
/home/tramesh/java/java1.2/jre/lib/i686/classic/libjvm.so
#12 0x41aa7230 in ?? ()
#13 0x40de4b80 in ?? ()





(gdb) thread 22 
[Switching to thread 22 (Thread 21990)]
#0  0x405205c4 in __libc_read () from /lib/libc.so.6
(gdb) where
#0  0x405205c4 in __libc_read () from /lib/libc.so.6
#1  0x40419cdc in ?? () from /lib/libpthread.so.0
#2  0x40c09691 in sysRead (fd=41, buf=0xbd1ff398, nBytes=2048)
    at ../../../../../src/linux/hpi/native_threads/src/sys_api_td.c:312
#3  0x40bd52c9 in JVM_Read (fd=41, buf=0xbd1ff398 "°\211V@ \205V@àô\037½\001", 
nbytes=2048)
    at ../../../../src/share/javavm/runtime/jvm.c:1539
#4  0x40c55c17 in Java_java_net_SocketInputStream_socketRead (env=0x4506f2c8, 
this=0xbd1ffbe0, 
    data=0x45071cfc, off=0, len=2048) at 
../../../../src/linux/native/java/net/SocketInputStream.c:128
#5  0x40bbcde2 in invoke_OII_I (o=0x41aa62a0, mb=0x4506e3f0, args_size=4, 
ee=0x4506f2c8)
    at invokers.c:155
#6  0x40bb45f2 in invokeLazyNativeMethod (o=0x41aa62a0, mb=0x4506e3f0, args_size=4, 
ee=0x4506f2c8)
    at ../../../../src/share/javavm/runtime/classruntime.c:684
#7  0x40bf5369 in invq_not_ijn6 () from 
/home/tramesh/java/java1.2/jre/lib/i686/classic/libjvm.so
#8  0x41aa62e0 in ?? ()
#9  0x4506e660 in ?? ()
#10 0x0 in ?? ()











(gdb) thread 23
[Switching to thread 23 (Thread 21991)]
#0  0x40498d1b in __sigsuspend (set=0xbcfff8a4) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
48      in ../sysdeps/unix/sysv/linux/sigsuspend.c
(gdb) where
#0  0x40498d1b in __sigsuspend (set=0xbcfff8a4) at 
../sysdeps/unix/sysv/linux/sigsuspend.c:48
#1  0x4040fc22 in __pthread_wait_for_restart_signal (self=0xbcfffe40) at pthread.c:785
#2  0x40411262 in __pthread_lock (lock=0x40d0e3f8, self=0xbcfffe40) at spinlock.c:68
#3  0x4040e75a in __pthread_mutex_lock (mutex=0x40d0e3e8) at mutex.c:84
#4  0x40c07e0a in sysMonitorEnter (self=0x4506dd98, mid=0x40d0e3e8)
    at ../../../../../src/linux/hpi/native_threads/src/monitor_md.c:162
#5  0x40bac944 in ResolveClassConstant0 (current_class=0x0, constant_pool=0xbcfffc8c, 
index=1, 
    ee=0x4506dd18, mask=1024) at 
../../../../src/share/javavm/runtime/classinitialize.c:161
#6  0x40bac861 in ResolveClassConstantAndInit (class=0x0, constant_pool=0xbcfffc8c, 
index=1, 
    ee=0x4506dd18, mask=1024, init=FALSE) at 
../../../../src/share/javavm/runtime/classinitialize.c:99
#7  0x40bac8fd in ResolveClassConstant2 (constant_pool=0xbcfffc8c, index=1, 
ee=0x4506dd18, mask=1024, 
    init=FALSE) at ../../../../src/share/javavm/runtime/classinitialize.c:129
#8  0x40bac7d9 in ResolveClassConstant (constant_pool=0xbcfffc8c, index=1, 
ee=0x4506dd18, mask=1024)
    at ../../../../src/share/javavm/runtime/classinitialize.c:59
#9  0x40bbf7dc in ResolveClassConstantFromPC (pc=0xbcfffc78 "¶", opcode=182 '¶', 
    constant_pool=0xbcfffc8c, ee=0x4506dd18, mask=1024)
    at ../../../../src/share/javavm/runtime/interpreter.c:1360
#10 0x40bee88d in x86_invokevirtual (ee=0x4506dd18, pc=0xbcfffc78 "¶")
    at ../../../../src/share/javavm/runtime/runtimeHelper_p5.c:199




(gdb) info threads
* 23 Thread 21991  0x40498d1b in __sigsuspend (set=0xbcfff8a4)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  22 Thread 21990  0x405205c4 in __libc_read () from /lib/libc.so.6
  21 Thread 21989  0x40498d1b in __sigsuspend (set=0xbd3ff9f4)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  20 Thread 21988  0x40498d1b in __sigsuspend (set=0xbd5ff968)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  19 Thread 21987  0x40498d1b in __sigsuspend (set=0xbd7ff968)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  18 Thread 21986  0x40498d1b in __sigsuspend (set=0xbd9ffb30)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  17 Thread 21985  0x40498d1b in __sigsuspend (set=0xbdbffbbc)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  16 Thread 21984  0x4050bb31 in __libc_nanosleep () from /lib/libc.so.6
  15 Thread 21983  0x4050bb31 in __libc_nanosleep () from /lib/libc.so.6
  14 Thread 21982  0x40498d1b in __sigsuspend (set=0xbe1ffc34)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  13 Thread 21981  0x4050bb31 in __libc_nanosleep () from /lib/libc.so.6
  12 Thread 21980  0x40525a40 in __poll (fds=0xbe5ffb54, nfds=2, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:45
  11 Thread 21979  0x40498d1b in __sigsuspend (set=0xbe7ffc34)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  10 Thread 21978  0x40498d1b in __sigsuspend (set=0xbe9ffc34)
---Type <return> to continue, or q <return> to quit---
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  9 Thread 21977  0x40498d1b in __sigsuspend (set=0xbebff5d8)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  8 Thread 21975  0x40498d1b in __sigsuspend (set=0xbedffc34)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  7 Thread 21974  0x4050bb31 in __libc_nanosleep () from /lib/libc.so.6
  6 Thread 21972  0x4050bb31 in __libc_nanosleep () from /lib/libc.so.6
  5 Thread 21971  0x40525a40 in __poll (fds=0xbf3ff498, nfds=2, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:45
  4 Thread 21967  0x40525a40 in __poll (fds=0x82263d0, nfds=6, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:45
  3 Thread 21966  0x4050bb31 in __libc_nanosleep () from /lib/libc.so.6
  2 Thread 21964 (initial thread)  0x40498d1b in __sigsuspend (set=0xbfffc870)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
  1 Thread 21965 (manager thread)  0x40525a40 in __poll (fds=0x8066ce0, nfds=1, 
timeout=2000)
    at ../sysdeps/unix/sysv/linux/poll.c:45


The above stack traces are from the threads which look suspicious. I did not see any 
problem with other threads.

Is this a bug in JDK or am i missing some thing? Are there any patches i need to apply 
to make this work?


Thanks in advance,


----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to