JDK-8213348 : jdk.internal.vm.compiler.management service providers missing in module descriptor
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,12
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-11-04
  • Updated: 2020-04-27
  • Resolved: 2018-11-08
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 11 JDK 12
11.0.7-oracleFixed 12 b20Fixed
Related Reports
Blocks :  
Relates :  
Relates :  
Description
There are 2 service providers in the jdk.internal.vm.compiler.management module whose `provides` clauses are missing in the module descriptor.

Here's the GitHub Graal output showing the provides clauses:

> mx vm -d jdk.internal.vm.compiler.management | grep provides
provides org.graalvm.compiler.hotspot.HotSpotGraalManagementRegistration with org.graalvm.compiler.hotspot.management.HotSpotGraalManagement
provides org.graalvm.compiler.serviceprovider.JMXService with org.graalvm.compiler.hotspot.management.JMXServiceProvider

On JDK 12:
> java -d jdk.internal.vm.compiler.management | grep provides
>
Comments
Fix request (11u) I would like to downport this for parity with 11.0.7-oracle. Applies clean. The fix for this was pushed together with JDK-8211781. I'll downport them as one fix to 11, too. It applied clean, but broke the build. I had to do the following fix, see review: http://mail.openjdk.java.net/pipermail/jdk-updates-dev/2019-December/002247.html
16-12-2019

The problem with that is the large amount of service providers generated by annotation processors. We don't want these generated sources checked into the GitHub repo. We could consider having these be part of the OpenJDK repo by copying them as part of updategraalinopenjdk. That said, I think it would be easier to factor out the annotation processor logic from make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk or make it re-usable from make/gensrc/Gensrc-jdk.internal.vm.compiler.management.gmk.
06-11-2018

[~dnsimon] Can we just check in a module-info.java file instead of adding a new Makefile? And then could we use the same module-info.java that upstream Graal uses?
06-11-2018

Dean, could you please have a look? Maybe this should be fixed as part of JDK-8210777.
06-11-2018

ILW = Provides clauses are missing in the module descriptor, in Graal code, no workaround = HLH = P2
06-11-2018

After digging around in make/ a little, it seems as though there will need to be a make/gensrc/Gensrc-jdk.internal.vm.compiler.management.gmk file which would be very similar to make/gensrc/Gensrc-jdk.internal.vm.compiler.gmk. As a general observation, all OpenJDK make file logic should be generated by the `mx updategraalinopenjdk` command in GitHub Graal. Recently, the logic for generating jdk.internal.vm.compiler_EXCLUDES in make/CompileJavaModules.gmk was moved to this helper (https://github.com/oracle/graal/commit/c219ab617feb58f4d30b5574500116439dac66a0).
04-11-2018