-
Bug
-
Resolution: Fixed
-
Minor
-
JDK 9, Jenkins 2.60.3 as described in my lts-with-plugins docker instance
-
-
Jenkins 2.144
While exploring Jenkins 2.60.3 on Oracle Java 9 build 181 (pre-release), it reports illegal access exceptions and warns that a future release of Java 9 will forbid illegal access. These uses do not seem to be able to be removed or fixed easily in JNR Posix, but Jenkins core does not use JNR Posix by default for anything critical after the changes for JENKINS-36088, so it can be detached.
We would have to remove the useNativeChmodAndMode option, but that was only added in case of significant regressions with the NIO implementations, but I am not aware of regressions and would be fine with removing the option.
A stack trace shows:
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper (file:/var/jenkins_home/war/WEB-INF/lib/jnr-posix-3.0.1.jar) to method sun.nio.ch.SelChImpl.getFD() at jnr.posix.JavaLibCHelper.<clinit>(JavaLibCHelper.java:87) at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:38) at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:20) at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:95) at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:69) at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:38) at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:33) at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:29) at jnr.posix.LazyPOSIX.chmod(LazyPOSIX.java:55) at hudson.FilePath._chmod(FilePath.java:1611) at hudson.FilePath.access$1500(FilePath.java:197) at hudson.FilePath$29.invoke(FilePath.java:1596) at hudson.FilePath$29.invoke(FilePath.java:1592) at hudson.FilePath.act(FilePath.java:998) at hudson.FilePath.act(FilePath.java:976) at hudson.FilePath.chmod(FilePath.java:1592) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.makeReadOnly(InstanceIdentity.java:116) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.write(InstanceIdentity.java:105) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.<init>(InstanceIdentity.java:66) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.<init>(InstanceIdentity.java:40) at org.jenkinsci.main.modules.instance_identity.PageDecoratorImpl.<init>(PageDecoratorImpl.java:22) at org.jenkinsci.main.modules.instance_identity.PageDecoratorImpl$$FastClassByGuice$$68618106.newInstance(<generated>) at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145) at hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1.get(ExtensionFinder.java:424)
A different stack trace shows:
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper (file:/var/jenkins_home/war/WEB-INF/lib/jnr-posix-3.0.1.jar) to field sun.nio.ch.FileChannelImpl.fd at jnr.posix.JavaLibCHelper.<clinit>(JavaLibCHelper.java:104) at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:38) at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:20) at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:95) at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:69) at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:38) at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:33) at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:29) at jnr.posix.LazyPOSIX.chmod(LazyPOSIX.java:55) at hudson.FilePath._chmod(FilePath.java:1611) at hudson.FilePath.access$1500(FilePath.java:197) at hudson.FilePath$29.invoke(FilePath.java:1596) at hudson.FilePath$29.invoke(FilePath.java:1592) at hudson.FilePath.act(FilePath.java:998) at hudson.FilePath.act(FilePath.java:976) at hudson.FilePath.chmod(FilePath.java:1592) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.makeReadOnly(InstanceIdentity.java:116) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.write(InstanceIdentity.java:105) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.<init>(InstanceIdentity.java:66) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.<init>(InstanceIdentity.java:40) at org.jenkinsci.main.modules.instance_identity.PageDecoratorImpl.<init>(PageDecoratorImpl.java:22) at org.jenkinsci.main.modules.instance_identity.PageDecoratorImpl$$FastClassByGuice$$68618106.newInstance(<generated>) at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145) at hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1.get(ExtensionFinder.java:424)
A third stack trace shows:
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper (file:/var/jenkins_home/war/WEB-INF/lib/jnr-posix-3.0.1.jar) to field java.io.FileDescriptor.fd at jnr.posix.JavaLibCHelper.<clinit>(JavaLibCHelper.java:118) at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:38) at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:20) at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:95) at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:69) at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:38) at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:33) at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:29) at jnr.posix.LazyPOSIX.chmod(LazyPOSIX.java:55) at hudson.FilePath._chmod(FilePath.java:1611) at hudson.FilePath.access$1500(FilePath.java:197) at hudson.FilePath$29.invoke(FilePath.java:1596) at hudson.FilePath$29.invoke(FilePath.java:1592) at hudson.FilePath.act(FilePath.java:998) at hudson.FilePath.act(FilePath.java:976) at hudson.FilePath.chmod(FilePath.java:1592) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.makeReadOnly(InstanceIdentity.java:116) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.write(InstanceIdentity.java:105) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.<init>(InstanceIdentity.java:66) at org.jenkinsci.main.modules.instance_identity.InstanceIdentity.<init>(InstanceIdentity.java:40) at org.jenkinsci.main.modules.instance_identity.PageDecoratorImpl.<init>(PageDecoratorImpl.java:22) at org.jenkinsci.main.modules.instance_identity.PageDecoratorImpl$$FastClassByGuice$$68618106.newInstance(<generated>) at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145) at hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1.get(ExtensionFinder.java:424)
- is blocking
-
JENKINS-46619 Illegal reflective access by JNR to FileDescriptor#fd
- Closed
- links to