JDK-6624474 : Server compiler generates unexpected LinkageError
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 5.0u10
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2007-10-31
  • Updated: 2015-02-02
  • Resolved: 2008-06-25
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u14Fixed 7Fixed hs13Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Customer Note -
Here's a microbenchmark which throws a LinkageError on X86 -server but runs fine with -client and -Xint.
I'm not sure why it throws the LinkageError; it works fine on our version of -server.
I'm not all that sure what the proper behavior should be, but I suspect the LinkageError isn't correct.

I have enclosed their tar file.(see attachments)

EVALUATION load_signature_classes() should ignore LinkageErrors.

EVALUATION The server compiler is slightly more eager in loading classes than the client compiler or the interpreter. The function load_signature_classes() called to resolve classes associated with the signature of the method being compiled. The test case provided is an example where a LinkageError is thrown on the eager class loading. See bug 4944478 for a similar case where a ClassNotFoundException was thrown.

EVALUATION Before compiling, in CompileBroker:compile_method(), the server compiler resolves string constants and loads signature classes. C1 does not do this. The failure occurs as we prepare to compile from_loader2.gen.