JDK-4472655 : hotspot crashes in JDK 1.3.0_02 and JDK1.3.0_04 on standard RedHat 7.1 config
  • Type: Bug
  • Component: other-libs
  • Sub-Component: other
  • Affected Version: 1.3.0_02
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux
  • CPU: x86
  • Submitted: 2001-06-21
  • Updated: 2001-06-21
  • Resolved: 2001-06-21
Related Reports
Duplicate :  
Description
hotspot wm crashes in JDK 1.3.0_02 and JDK1.3.0_04 on RedHat 7.1. On JDK 1.3.0_02 it just does nothing, it simply hangs. strace java command shows following messages:

<snip>
_llseek(3, 2326677, [2326677], SEEK_SET) = 0
read(3, "\312\376\272\276\0\3\0-\0&\10\0\22\n\0\t\0\23\n\0\5\0\24"..., 717) = 717
rt_sigprocmask(SIG_SETMASK, NULL, [RT_0], 8) = 0
write(7, "\200\216\3@\0\0\0\0|\322\377\277\250\23\36@\360\357\10"..., 148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, [RT_0], 8) = 0
rt_sigsuspend([] <unfinished ...>
--- SIGRT_0 (Real-time signal 0) ---
<... rt_sigsuspend resumed> )           = -1 EINTR (Interrupted system call)
sigreturn()                             = ? (mask now [])
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
<snip>

nanosleep() call is infinite.

very similar message I get from JDK 1.3.0_04:

read(3, "\312\376\272\276\0\3\0-\0&\10\0\22\n\0\t\0\23\n\0\5\0\24"..., 717) = 717
rt_sigprocmask(SIG_SETMASK, NULL, [RT_0], 8) = 0
write(7, "\200\216\3@\0\0\0\0|\322\377\277\210d\36@\20\360\10\10"..., 148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, [RT_0], 8) = 0
rt_sigsuspend([] <unfinished ...>
--- SIGRT_0 (Real-time signal 0) ---
<... rt_sigsuspend resumed> )           = -1 EINTR (Interrupted system call)
sigreturn()                             = ? (mask now [])
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
nanosleep({0, 1000000}, 


****************
Another exception has been detected while we were handling last error.
Dumping information about last error:
ERROR REPORT FILE = (N/A)
{3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0
nanosleep({0, 1000000}, {3221213816, 3221213820}) = 0

My config is:
Standard RedHat 7.1 installation
glibc-common-2.2.2-10
glibc-devel-2.2.2-10
glibc-2.2.2-10
kernel-headers-2.4.2-2
kernel-source-2.4.2-2
kernel-2.4.2-2

If I run java with -classic switch it works OK:

$ /usr/local/jdk1.3.0_02/bin/java -classic -version
java version "1.3.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_02)
Classic VM (build 1.3.0_02, green threads, nojit)

$ /usr/local/jdk1.3.0_04/bin/java -classic -version
java version "1.3.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_04)
Classic VM (build 1.3.0_04, green threads, nojit)

Comments
EVALUATION JDK 1.3.0 cannot support the "floating stack" pthread library introduced in Redhat 7.1. The fix is in JDK 1.3.1. see 4415774 In order to run JDK 1.3.0, you will have to set environment variable LD_ASSUME_KERNEL to 2.2.5. But I would recommend to upgrade to 1.3.1. hui.huang@Eng 2001-06-21
21-06-2001