RFR (XS) JDK-8010389 - After fix for 7107135 a failed dlopen() call results in a VM crash

Christian Tornqvist christian.tornqvist at oracle.com
Fri Mar 22 05:41:36 PDT 2013


Hi Ioi,

 

Change looks good!

 

Thanks,

Christian

 

From: hotspot-runtime-dev-bounces at openjdk.java.net
[mailto:hotspot-runtime-dev-bounces at openjdk.java.net] On Behalf Of Ioi Lam
Sent: den 21 mars 2013 23:12
To: hotspot-runtime-dev at openjdk.java.net
Subject: Re: RFR (XS) JDK-8010389 - After fix for 7107135 a failed dlopen()
call results in a VM crash

 

Hi Coleen,

Thanks for the review. I have now moved the call to dlopen and strncpy into
a helper function, so the code is a little cleaner.

http://cr.openjdk.java.net/~iklam/8010389/dlopen_crash_003/
<http://cr.openjdk.java.net/%7Eiklam/8010389/dlopen_crash_003/> 

- Ioi

On 03/21/2013 02:09 PM, Coleen Phillimore wrote:


Hi Ioi,

In this code, do you only want to copy the dlerror() to the buffer if the
dlopen fails?
Why not have the check for null result and copy to error buffer at line 1870
and not have the bool to copy it later?

Thanks,
Coleen

On 03/21/2013 04:54 PM, Ioi Lam wrote:

Hi,

Could some give a quick review. This is a P2 bug and I'd like fix it
quickly.

I have updated the patch to have a more simplified test case:

http://cr.openjdk.java.net/~iklam/8010389/dlopen_crash_002/
<http://cr.openjdk.java.net/%7Eiklam/8010389/dlopen_crash_002/> 


Thanks

- Ioi


On 03/21/2013 05:55 AM, Christian Tornqvist wrote:

Hi Ioi,

 

Adding ’-Djava.library.path=.’ to the @run tag seems to work.

 

Thanks,

Christian

 

From: Ioi Lam [mailto:ioi.lam at oracle.com] 
Sent: den 21 mars 2013 05:22
To: hotspot-runtime-dev at openjdk.java.net; Christian Törnqvist
Subject: RFR (XS) JDK-8010389 - After fix for 7107135 a failed dlopen() call
results in a VM crash

 

Please review:

http://cr.openjdk.java.net/~iklam/8010389/dlopen_crash_001/
<http://cr.openjdk.java.net/%7Eiklam/8010389/dlopen_crash_001/> 

Bug: After fix for 7107135 a failed dlopen() call results in a VM crash

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8010389
https://jbs.oracle.com/bugs/browse/JDK-8010389

    (The bugs.sun.com page may be unavailable for a couple of days) 

Summary of fix: 

    Previously, if dlopen() fails inside the VM Thread, the Java thread
would 
    call dlerror() to try to find out what happened, but would get a NULL
return
    instead. Attempts to use this NULL value causes the JVM to crash.

    The fix is to read dlerror() in the VM Thread when necessary.

To Christian:

    I integrated your test into jtreg, but I needed to write a shell test to
set
    the LD_LIBRARY_PATH. Is there a way to avoid the shell test?

Tests executed: 

    * JPRT (linux only)
    * UTE (vm.quick.testlist) 
    * JTREG

Thanks,
Ioi 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130322/36000648/attachment.html 


More information about the hotspot-runtime-dev mailing list