Red Hat Bugzilla – Bug 65372
Sun's JVM 1.3.1_03 has run-time linking problem with the glibc in rh73
Last modified: 2016-11-24 09:57:00 EST
Description of Problem:
[I had a much more descriptive entry the first time, but bugzilla ate it when I
tried to submit with the "new and improved" form. So I'll be terse this time.
There is enough info in this bug report for a glibc guru to figure out where the
problem is. Just check to glibc changelog for GLIBC_PRIVATE.]
Version-Release number of selected component (if applicable):
Depends on the classes being used. However, for a combination of classes that
produces the error, it's 100% reproducible.
Steps to Reproduce:
1. export J2SE_PREEMPTCLOSE=1
2. run java
relocation error: /usr/java/jdk1.3.1_03/jre/lib/i386/libpreemptive_close.so:
symbol __libc_sendto, version GLIBC_2.0 not defined in file libc.so.6 with link
libpreemptive_close.so (triggered by J2SE_PREEMPTCLOSE=1) is used to unblock
threads sleeping on a file descriptor when that fd is closed in another thread.
Downgrading to the errata version of glibc for rh72 fixes the problem.
The bug is in Sun JDK. It must not use glibc private interfaces (and the difference
between 7.2 and 7.3 is that glibc no enforces this).
Get a newer JDK from Sun (I think they've fixed it already).
While I agree in principle, I believe that making this kind of change between
two supposedly-compatible RH releases is not the best idea. It could have
waited for 8.0.
Also, for what it's worth, the Blackdown JVM has the same problem (no wonder,
since it's using Sun's code base). As for Sun fixing it, if they've done it
then they certainly haven't released anything yet.