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): 2.2.5-34 How Reproducible: 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 3. Actual Results: 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 time reference Expected Results: Guess... Additional Information: 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.