-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Minor
-
Component/s: core
-
Environment: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