Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8276225 | 17.0.3-oracle | Harold Seigel | P4 | Resolved | Fixed | b01 |
JDK-8280803 | 17.0.3 | Thomas Stuefe | P4 | Resolved | Fixed | b01 |
Description
With the fix for JDK-8274753, there's a stale entry that is in the dumptime_table but not cleaned up with class unloading. It's not in the CLD::_klasses list.
adding com/sun/net/httpserver/HttpExchange to the table 0x0000000800c01c20
Expected: java.lang.LinkageError: loader constraint violation: loader java.net.URLClassLoader @7cca494b wants to load abstract class com.sun.net.httpserver.HttpExchange. A different abstract class with the same name was previously loaded by 'platform'. (com.sun.net.httpserver.HttpExchange is in module jdk.httpserver of loader 'platform')
adding java/lang/Throwable$PrintStreamOrWriter to the table 0x0000000800c481f0
adding java/lang/Throwable$WrappedPrintStream to the table 0x0000000800c48400
java.lang.LinkageError: loader constraint violation: loader java.net.URLClassLoader @7cca494b wants to load abstract class com.sun.net.httpserver.HttpExchange. A different abstract class with the same name was previously loaded by 'platform'. (com.sun.net.httpserver.HttpExchange is in module jdk.httpserver of loader 'platform')
The class gets a linkage error but it's never deleted because it's put on the deallocate_list as an error class, and when the class loader is unloaded, it's been removed from the _klasses list.
So it's left in the table with contents deleted, which is bad.
adding com/sun/net/httpserver/HttpExchange to the table 0x0000000800c01c20
Expected: java.lang.LinkageError: loader constraint violation: loader java.net.URLClassLoader @7cca494b wants to load abstract class com.sun.net.httpserver.HttpExchange. A different abstract class with the same name was previously loaded by 'platform'. (com.sun.net.httpserver.HttpExchange is in module jdk.httpserver of loader 'platform')
adding java/lang/Throwable$PrintStreamOrWriter to the table 0x0000000800c481f0
adding java/lang/Throwable$WrappedPrintStream to the table 0x0000000800c48400
java.lang.LinkageError: loader constraint violation: loader java.net.URLClassLoader @7cca494b wants to load abstract class com.sun.net.httpserver.HttpExchange. A different abstract class with the same name was previously loaded by 'platform'. (com.sun.net.httpserver.HttpExchange is in module jdk.httpserver of loader 'platform')
The class gets a linkage error but it's never deleted because it's put on the deallocate_list as an error class, and when the class loader is unloaded, it's been removed from the _klasses list.
So it's left in the table with contents deleted, which is bad.
Attachments
Issue Links
- backported by
-
JDK-8276225 dumptime_table has stale entry
- Resolved
-
JDK-8280803 dumptime_table has stale entry
- Resolved
- relates to
-
JDK-8274753 ZGC: SEGV in MetaspaceShared::link_shared_classes
- Resolved
- links to
-
Commit openjdk/jdk17u-dev/b23271bd
-
Commit openjdk/jdk/110e38de
-
Review openjdk/jdk17u-dev/10
-
Review openjdk/jdk17u-dev/118
-
Review openjdk/jdk/5859
(3 links to)