Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6244106
Votes 0
Synopsis IA64 Hang occurs at malloc/free in RHEL AS 3
Category hotspot:runtime_system
Reported Against
Release Fixed
State 11-Closed, duplicate of 4515367, bug
Priority: 3-Medium
Related Bugs 4515367
Submit Date 22-MAR-2005
Description
A customer  has  found hang in malloc/free thread in JRE1.4.2 for
RHEL AS3 (IA64).

---- Thread Dump ----
.........

Thread 2 (Thread 2305843010565911168 (LWP 2829)):

#0  0xa000000000010641 in ?? ()
#1  0x2000000000270ef0 in __lll_lock_wait () from /lib/tls/libc.so.6.1
#2  0x2000000000186b00 in free () from /lib/tls/libc.so.6.1
#3  0x2000000000d8f830 in os::free () from /tmp/c/fjvm142_05B11/jre/lib/ia64/fjvm/libjvm.so
#4  0x2000000000e0f350 in PerfMemory::delete_memory_region ()
   from /tmp/c/fjvm142_05B11/jre/lib/ia64/fjvm/libjvm.so
#5  0x2000000000e0d460 in PerfMemory::destroy ()
   from /tmp/c/fjvm142_05B11/jre/lib/ia64/fjvm/libjvm.so
#6  0x2000000000e0d540 in perfMemory_exit () from /tmp/c/fjvm142_05B11/jre/lib/ia64/fjvm/libjvm.so
#7  0x2000000000d94190 in os::abort () from /tmp/c/fjvm142_05B11/jre/lib/ia64/fjvm/libjvm.so
#8  0x2000000000d91780 in os::handle_unexpected_exception ()
   from /tmp/c/fjvm142_05B11/jre/lib/ia64/fjvm/libjvm.so
#9  0x2000000000d9bec0 in JVM_handle_linux_signal ()
   from /tmp/c/fjvm142_05B11/jre/lib/ia64/fjvm/libjvm.so
#10 0x2000000000d974a0 in signalHandler () from /tmp/c/fjvm142_05B11/jre/lib/ia64/fjvm/libjvm.so
#11 <signal handler called>
#12 0x2000000000185800 in _int_free () from /lib/tls/libc.so.6.1
#13 0xc000000000000610 in ?? ()
#14 0x2000000000186a60 in free () from /lib/tls/libc.so.6.1

......
----

According to the above, the hang-up scenario seems as follows.

   Signal generated at free()
   ==> JVM signal handler
   ==> os::abort()
   ==> perfMemory_exit
   ==> free()
   < Here, Hang occurs !! >

As for JRE in Solaris edition, customer works around this issue by checking
whether or not some thread get  the lock, "__malloc_lock".
However,  they can not apply the same workaround to linux edition
because system library in linux  is different from that in Solaris.

  xxxxx@xxxxx   2005-03-22 09:30:37 GMT
Work Around
N/A
Evaluation
The description from Fujitsu is correct. Signal handlers should only use
async-safe functions. I rewrote the fatal error handler code in 1.5 to
remove any asynchronous unsafe functions from its call path, it's been 
explicitly tested with crashes happened inside malloc/free holding the
malloc lock. It is bug 4515367, which should be backported to 1.4.2 very
soon.

  xxxxx@xxxxx   2005-03-22 19:11:48 GMT
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang