Hi Christoph, It looks like one of the dreaded class initialization cycle issues.
If you look at the stack trace, you will see that UnixNativeDispatcher.<clinit>:609 calls System.loadLibrary at line 611 which later down the road calls the native UnixNativeDispatcher.getcwd command from sun.nio.fs.UnixFileSystem.<init> But at this point UnixNativeDispatcher has not finished initializing: we're still trying to load the nio lib... I don't think this has anything to do with JDK-8173607. JDK-8173607 just splitted the JMX RMI Connector out of java.management - and rmid has nothing to do with JMX. rmid doesn't depend on either java.management or java.management.rmi, and I don't see anything on the exception path that would involve either of these modules. So I suspect the culprit is probably elsewhere. best regards, -- daniel On 16/02/17 13:53, Langer, Christoph wrote:
Hi Daniel, when starting „rmid“ from current builds on Linux (and probably other Unix platforms as well) we are currently getting the exception below. It looks as if on that path libnio was not loaded and hence we’re getting an UnsatisfiedLinkError. In UnixNativeDispatcher.java one can find a static initialization block which should do that, however, it needs elevated access. Maybe rmid is missing a permission for that? Any thoughts? Thanks & best regards Christoph ...>/jdk9-build-dir/images/jdk/bin/rmid Exception in thread "main" java.lang.UnsatisfiedLinkError: sun.nio.fs.UnixNativeDispatcher.getcwd()[B at java.base/sun.nio.fs.UnixNativeDispatcher.getcwd(Native Method) at java.base/sun.nio.fs.UnixFileSystem.<init>(UnixFileSystem.java:66) at java.base/sun.nio.fs.LinuxFileSystem.<init>(LinuxFileSystem.java:39) at java.base/sun.nio.fs.LinuxFileSystemProvider.newFileSystem(LinuxFileSystemProvider.java:46) at java.base/sun.nio.fs.LinuxFileSystemProvider.newFileSystem(LinuxFileSystemProvider.java:39) at java.base/sun.nio.fs.UnixFileSystemProvider.<init>(UnixFileSystemProvider.java:56) at java.base/sun.nio.fs.LinuxFileSystemProvider.<init>(LinuxFileSystemProvider.java:41) at java.base/sun.nio.fs.DefaultFileSystemProvider.create(DefaultFileSystemProvider.java:41) at java.base/java.io.FilePermission.<clinit>(FilePermission.java:206) at java.base/java.lang.SecurityManager.checkRead(SecurityManager.java:899) at java.base/java.io.File.exists(File.java:815) at java.base/java.lang.ClassLoader$2.run(ClassLoader.java:2513) at java.base/java.lang.ClassLoader$2.run(ClassLoader.java:2510) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2509) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2478) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:873) at java.base/java.lang.System.loadLibrary(System.java:1818) at java.base/sun.nio.fs.UnixNativeDispatcher$1.run(UnixNativeDispatcher.java:611) at java.base/sun.nio.fs.UnixNativeDispatcher$1.run(UnixNativeDispatcher.java:609) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/sun.nio.fs.UnixNativeDispatcher.<clinit>(UnixNativeDispatcher.java:609) at java.base/sun.nio.fs.UnixFileSystem.<init>(UnixFileSystem.java:66) at java.base/sun.nio.fs.LinuxFileSystem.<init>(LinuxFileSystem.java:39) at java.base/sun.nio.fs.LinuxFileSystemProvider.newFileSystem(LinuxFileSystemProvider.java:46) at java.base/sun.nio.fs.LinuxFileSystemProvider.newFileSystem(LinuxFileSystemProvider.java:39) at java.base/sun.nio.fs.UnixFileSystemProvider.<init>(UnixFileSystemProvider.java:56) at java.base/sun.nio.fs.LinuxFileSystemProvider.<init>(LinuxFileSystemProvider.java:41) at java.base/sun.nio.fs.DefaultFileSystemProvider.create(DefaultFileSystemProvider.java:41) at java.base/java.nio.file.FileSystems.<clinit>(FileSystems.java:91) at java.base/java.nio.file.Paths.get(Paths.java:84) at java.base/jdk.internal.jimage.ImageReaderFactory.<clinit>(ImageReaderFactory.java:50) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/sun.net.www.protocol.jrt.JavaRuntimeURLConnection.<clinit>(JavaRuntimeURLConnection.java:59) at java.base/sun.net.www.protocol.jrt.Handler.openConnection(Handler.java:42) at java.base/java.net.URL.openConnection(URL.java:1049) at java.base/jdk.internal.module.SystemModuleFinder$ImageModuleReader.checkPermissionToConnect(SystemModuleFinder.java:287) at java.base/jdk.internal.module.SystemModuleFinder$ImageModuleReader.<init>(SystemModuleFinder.java:296) at java.base/jdk.internal.module.SystemModuleFinder$1.get(SystemModuleFinder.java:245) at java.base/jdk.internal.module.SystemModuleFinder$1.get(SystemModuleFinder.java:242) at java.base/jdk.internal.module.ModuleReferenceImpl.open(ModuleReferenceImpl.java:83) at java.base/jdk.internal.loader.BuiltinClassLoader.createModuleReader(BuiltinClassLoader.java:934) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1719) at java.base/jdk.internal.loader.BuiltinClassLoader.moduleReaderFor(BuiltinClassLoader.java:926) at java.base/jdk.internal.loader.BuiltinClassLoader.access$100(BuiltinClassLoader.java:92) at java.base/jdk.internal.loader.BuiltinClassLoader$1.run(BuiltinClassLoader.java:356) at java.base/jdk.internal.loader.BuiltinClassLoader$1.run(BuiltinClassLoader.java:351) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/jdk.internal.loader.BuiltinClassLoader.findMiscResource(BuiltinClassLoader.java:350) at java.base/jdk.internal.loader.BuiltinClassLoader.findResources(BuiltinClassLoader.java:311) at java.base/jdk.internal.loader.BootLoader.findResources(BootLoader.java:156) at java.base/java.lang.ClassLoader.getResources(ClassLoader.java:1430) at java.base/java.lang.ClassLoader.getResources(ClassLoader.java:1428) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1082) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.access$1200(ServiceLoader.java:1004) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1131) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator$1.run(ServiceLoader.java:1130) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1133) at java.base/java.util.ServiceLoader$1.hasNext(ServiceLoader.java:1163) at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1258) at java.base/java.nio.channels.spi.SelectorProvider.loadProviderAsService(SelectorProvider.java:122) at java.base/java.nio.channels.spi.SelectorProvider.access$200(SelectorProvider.java:69) at java.base/java.nio.channels.spi.SelectorProvider$1.run(SelectorProvider.java:180) at java.base/java.nio.channels.spi.SelectorProvider$1.run(SelectorProvider.java:176) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.nio.channels.spi.SelectorProvider.provider(SelectorProvider.java:175) at java.base/java.lang.System.inheritedChannel(System.java:276) at java.rmi/sun.rmi.server.Activation$2.run(Activation.java:1960) at java.rmi/sun.rmi.server.Activation$2.run(Activation.java:1958) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.server.Activation.main(Activation.java:1957)