New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invalid PID retrieved for SOLARIS SPARC Environment #4872

Open
Tribbles01 opened this Issue Nov 28, 2017 · 15 comments

Comments

Projects
None yet
2 participants
@Tribbles01

Tribbles01 commented Nov 28, 2017

First of all, this is my very first post / Bug Report, so I try to be as complete as possible...

I did some testing with JRuby in my Solaris Sparc environment and had to find that some very basic functionality does not work anymore, in contrast to JRuby V1.9

Environment

Provide at least:

  • JRuby version (jruby -v) and command line (flags, JRUBY_OPTS, etc)

$ ./bin/jruby --version
jruby 9.1.13.0 (2.3.3) 2017-09-06 8e1c115 Java HotSpot(TM) 64-Bit Server VM 25.144-b01 on 1.8.0_144-b01 +jit [solaris-sparcv9]

  • Operating system and platform (e.g. uname -a)

$ uname -a
SunOS 5.11 11.3 sun4v sparc sun4v

Other relevant info you may wish to add:

No additional installation has happened, just used the lastest stable JRuby binary

Expected Behavior

Expected behaviour would be like this, as per outlined command call:

$ ./bin/jruby --version
jruby 1.7.27 (1.9.3p551) 2017-05-11 8cdb01a on Java HotSpot(TM) 64-Bit Server VM 1.8.0_144-b01 +jit [SunOS-sparcv9]

$ LD_LIBRARY_PATH="/lib/64" ./bin/jruby -Xnative.verbose=true -Xnative.net.protocol=true -e 'pipe=IO.popen("sleep 3"); puts pipe.pid; puts File.blockdev?("/")'
Successfully loaded native POSIX impl.
10486
false

Actual Behavior

$ ./bin/jruby --version
jruby 9.1.13.0 (2.3.3) 2017-09-06 8e1c115 Java HotSpot(TM) 64-Bit Server VM 25.144-b01 on 1.8.0_144-b01 +jit [solaris-sparcv9]

$ LD_LIBRARY_PATH="/lib/64" ./bin/jruby -Xnative.verbose=true -Xnative.net.protocol=true -e 'pipe=IO.popen("sleep 3"); puts pipe.pid; puts File.blockdev?("/")'
Successfully loaded native POSIX impl.
51582567331272
false

As you can see, the returned PID as far out of bounds, so any subsequent call like waitfor on this pid, do fail....

Best wishes,
Thorsten

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Nov 28, 2017

Member

Yeah I would guess in this environment it's not using our native process logic, which would mean that the pid is hidden inside a JDK-provided class.

Are you able to assist us investigating this? I do not have access to a sparcv9 system.

Member

headius commented Nov 28, 2017

Yeah I would guess in this environment it's not using our native process logic, which would mean that the pid is hidden inside a JDK-provided class.

Are you able to assist us investigating this? I do not have access to a sparcv9 system.

@headius headius added the ffi label Nov 28, 2017

@Tribbles01

This comment has been minimized.

Show comment
Hide comment
@Tribbles01

Tribbles01 Dec 27, 2017

Hi Headius,

sorry for the late reply. I do have access to some sparc systems, so in a way I can play remote-hands for you to debug this issue. But coming from the different JRuby versions, I would guess a change happened between both, i.e. between 2017-05-11 and 2017-09-06 which led to this error.

So, any commands or scripts I can run for you, to shed more light into this ?

Best wishes,
Thorsten

Tribbles01 commented Dec 27, 2017

Hi Headius,

sorry for the late reply. I do have access to some sparc systems, so in a way I can play remote-hands for you to debug this issue. But coming from the different JRuby versions, I would guess a change happened between both, i.e. between 2017-05-11 and 2017-09-06 which led to this error.

So, any commands or scripts I can run for you, to shed more light into this ?

Best wishes,
Thorsten

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Jan 25, 2018

Member

@Tribbles01 Sorry for silence over the holiday season!

Since you have a date range, perhaps you could bisect and find out which commit introduced it? There's instructions on building a local JRuby in BUILDING.md.

Member

headius commented Jan 25, 2018

@Tribbles01 Sorry for silence over the holiday season!

Since you have a date range, perhaps you could bisect and find out which commit introduced it? There's instructions on building a local JRuby in BUILDING.md.

@Tribbles01

This comment has been minimized.

Show comment
Hide comment
@Tribbles01

Tribbles01 Feb 1, 2018

Hi Headius,

it took me a bit of time to prepare the build environment, as I barely know about maven and the likes.
But I managed to get everything kinda up and working and tried to pull off recent versions of JRuby. Especially the 9.0.X line was incomplete on the AWS.

After the build, I did this little check routine:

bash-4.4$ for i in ls -l | grep jruby | grep -v \.gz |awk '{print $9;}'; do echo "Checking Build at : $i"; cd $i; ./bin/jruby --version; ./bin/jruby -Xnative.verbose=true -Xnative.net.protocol=true -e 'pipe=IO.popen("sleep 3"); puts pipe.pid; puts File.blockdev?("/")'; cd .. ; done
Checking Build at : jruby-1.7.27
jruby 1.7.27 (1.9.3p551) 2018-01-31 fffffff on Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 +jit [SunOS-sparcv9]
io/console on JRuby shells out to stty for most operations
Successfully loaded native POSIX impl.
24220
false
Checking Build at : jruby-9.1.13.0
jruby 9.1.13.0 (2.3.3) 2018-01-31 fffffff Java HotSpot(TM) 64-Bit Server VM 25.131-b11 on 1.8.0_131-b11 +jit [solaris-sparcv9]
Successfully loaded native POSIX impl.
104238856273928
false
Checking Build at : jruby-9.1.15.0
jruby 9.1.15.0 (2.3.3) 2018-01-31 fffffff Java HotSpot(TM) 64-Bit Server VM 25.131-b11 on 1.8.0_131-b11 +jit [solaris-sparcv9]
Successfully loaded native POSIX impl.
104333345554440
false
Checking Build at : jruby-9.1.8.0
jruby 9.1.8.0 (2.3.1) 2018-01-31 fffffff Java HotSpot(TM) 64-Bit Server VM 25.131-b11 on 1.8.0_131-b11 +jit [solaris-sparcv9]
Successfully loaded native POSIX impl.
104745662414856
false
bash-4.4$

There you can see that the last 1.7 Release works as supposed, returning a correct PID Number.
On the 9.X Tree it seems to me that the error was introduced, although I can only check back to 9.1.8.0.

I tried to build the 9.0.1.0 Version, but this build fails like this:

[ SNIP ]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ jruby-core ---
[INFO] Compiling 1282 source files to /homekos/nickelt/jruby-9.0.1.0/core/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] JRuby .............................................. SUCCESS [ 2.756 s]
[INFO] JRuby Core ......................................... FAILURE [ 9.591 s]
[INFO] JRuby Truffle ...................................... SKIPPED
[INFO] JRuby Lib Setup .................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.432 s
[INFO] Finished at: 2018-02-01T09:56:02+01:00
[INFO] Final Memory: 29M/493M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project jruby-core: Compilation failure -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project jruby-core: Compilation failure
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:862)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:129)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :jruby-core

I think this is as far as I can go, hope this may set you right on track.

Best wishes,
Thorsten

Tribbles01 commented Feb 1, 2018

Hi Headius,

it took me a bit of time to prepare the build environment, as I barely know about maven and the likes.
But I managed to get everything kinda up and working and tried to pull off recent versions of JRuby. Especially the 9.0.X line was incomplete on the AWS.

After the build, I did this little check routine:

bash-4.4$ for i in ls -l | grep jruby | grep -v \.gz |awk '{print $9;}'; do echo "Checking Build at : $i"; cd $i; ./bin/jruby --version; ./bin/jruby -Xnative.verbose=true -Xnative.net.protocol=true -e 'pipe=IO.popen("sleep 3"); puts pipe.pid; puts File.blockdev?("/")'; cd .. ; done
Checking Build at : jruby-1.7.27
jruby 1.7.27 (1.9.3p551) 2018-01-31 fffffff on Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11 +jit [SunOS-sparcv9]
io/console on JRuby shells out to stty for most operations
Successfully loaded native POSIX impl.
24220
false
Checking Build at : jruby-9.1.13.0
jruby 9.1.13.0 (2.3.3) 2018-01-31 fffffff Java HotSpot(TM) 64-Bit Server VM 25.131-b11 on 1.8.0_131-b11 +jit [solaris-sparcv9]
Successfully loaded native POSIX impl.
104238856273928
false
Checking Build at : jruby-9.1.15.0
jruby 9.1.15.0 (2.3.3) 2018-01-31 fffffff Java HotSpot(TM) 64-Bit Server VM 25.131-b11 on 1.8.0_131-b11 +jit [solaris-sparcv9]
Successfully loaded native POSIX impl.
104333345554440
false
Checking Build at : jruby-9.1.8.0
jruby 9.1.8.0 (2.3.1) 2018-01-31 fffffff Java HotSpot(TM) 64-Bit Server VM 25.131-b11 on 1.8.0_131-b11 +jit [solaris-sparcv9]
Successfully loaded native POSIX impl.
104745662414856
false
bash-4.4$

There you can see that the last 1.7 Release works as supposed, returning a correct PID Number.
On the 9.X Tree it seems to me that the error was introduced, although I can only check back to 9.1.8.0.

I tried to build the 9.0.1.0 Version, but this build fails like this:

[ SNIP ]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ jruby-core ---
[INFO] Compiling 1282 source files to /homekos/nickelt/jruby-9.0.1.0/core/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] JRuby .............................................. SUCCESS [ 2.756 s]
[INFO] JRuby Core ......................................... FAILURE [ 9.591 s]
[INFO] JRuby Truffle ...................................... SKIPPED
[INFO] JRuby Lib Setup .................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.432 s
[INFO] Finished at: 2018-02-01T09:56:02+01:00
[INFO] Final Memory: 29M/493M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project jruby-core: Compilation failure -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project jruby-core: Compilation failure
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:862)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:129)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :jruby-core

I think this is as far as I can go, hope this may set you right on track.

Best wishes,
Thorsten

@Tribbles01

This comment has been minimized.

Show comment
Hide comment
@Tribbles01

Tribbles01 Feb 1, 2018

One more note, perhaps the system architecture was not recognized correctly.

See [SunOS-sparcv9] vs. [solaris-sparcv9] in the --version info above ...

Best wishes,
Thorsten

Tribbles01 commented Feb 1, 2018

One more note, perhaps the system architecture was not recognized correctly.

See [SunOS-sparcv9] vs. [solaris-sparcv9] in the --version info above ...

Best wishes,
Thorsten

@Tribbles01

This comment has been minimized.

Show comment
Hide comment
@Tribbles01

Tribbles01 Feb 5, 2018

Hi Headius,

I made some more inspections and now I am quite sure, that the CPU ARchitecture detection does not work for SPARC systems.
Background: there is a OpenSolaris version, which you can use on x86 systems and from inspecting the loaded libraries, the 9.X tree tries to grab those from the x86_64 tree like:

jruby-9.1.13.0/lib/ruby/stdlib/ffi/platform/x86_64-solaris/fcntl.rb

Now, comparing the Makefiles you have a difference in the setup. The relevant part of the 1.7 Makefile:

ifeq ($(OS), solaris)
ifeq ($(CPU), i86pc)
override CPU = i386
endif
PLATFORM = $(CPU)-SunOS
CC = gcc
CFLAGS += -D__EXTENSIONS__
LD = /usr/ccs/bin/ld
SOFLAGS = -shared -static-libgcc
LIBS += -ldl
endif

In comparison to the 9.X spec/ffi/fixtures/GNUmakefile:
ifeq ($(OS), solaris)
CC = /usr/sfw/bin/gcc -std=c99
LD = /usr/ccs/bin/ld
SOFLAGS = -shared -static-libgcc
endif

Also note, that the CC Path does not need to be correct for sparc environments ... only if the SunFreeware (as in sfw) gcc package has been installed ...

This is as far as I can get, I am not sure on how to update the necessary build files to correctly determine the OS and CPU .. BUT from what I can see in the Makefiles, this may help:

bash-4.4$ uname -m
sun4v
bash-4.4$ uname -s
SunOS
bash-4.4$ uname -a
SunOS 5.11 11.3 sun4v sparc sun4v

Best wishes,
Thorsten

Tribbles01 commented Feb 5, 2018

Hi Headius,

I made some more inspections and now I am quite sure, that the CPU ARchitecture detection does not work for SPARC systems.
Background: there is a OpenSolaris version, which you can use on x86 systems and from inspecting the loaded libraries, the 9.X tree tries to grab those from the x86_64 tree like:

jruby-9.1.13.0/lib/ruby/stdlib/ffi/platform/x86_64-solaris/fcntl.rb

Now, comparing the Makefiles you have a difference in the setup. The relevant part of the 1.7 Makefile:

ifeq ($(OS), solaris)
ifeq ($(CPU), i86pc)
override CPU = i386
endif
PLATFORM = $(CPU)-SunOS
CC = gcc
CFLAGS += -D__EXTENSIONS__
LD = /usr/ccs/bin/ld
SOFLAGS = -shared -static-libgcc
LIBS += -ldl
endif

In comparison to the 9.X spec/ffi/fixtures/GNUmakefile:
ifeq ($(OS), solaris)
CC = /usr/sfw/bin/gcc -std=c99
LD = /usr/ccs/bin/ld
SOFLAGS = -shared -static-libgcc
endif

Also note, that the CC Path does not need to be correct for sparc environments ... only if the SunFreeware (as in sfw) gcc package has been installed ...

This is as far as I can get, I am not sure on how to update the necessary build files to correctly determine the OS and CPU .. BUT from what I can see in the Makefiles, this may help:

bash-4.4$ uname -m
sun4v
bash-4.4$ uname -s
SunOS
bash-4.4$ uname -a
SunOS 5.11 11.3 sun4v sparc sun4v

Best wishes,
Thorsten

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Feb 13, 2018

Member

Ok, thank you for the additional investigation. There is indeed no reference to "sun4v" in any of our platform detection, so that's likely causing the issues.

@Tribbles01 Can you show me what jruby -e 'p ENV_JAVA["os.name"]' displays?

Member

headius commented Feb 13, 2018

Ok, thank you for the additional investigation. There is indeed no reference to "sun4v" in any of our platform detection, so that's likely causing the issues.

@Tribbles01 Can you show me what jruby -e 'p ENV_JAVA["os.name"]' displays?

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Feb 13, 2018

Member

I'm downloading an x86 solaris vbox image, but I'm not sure I'll be able to reproduce the same issues there.

The pid capture/detection logic happens in one of two ways:

  • If we can use our native process-launching, it comes naturally from posix_spawn.
  • If we have to use JVM process-launching, we need to be able to unwrap the resulting (platform-specific) Process object to dig out the real pid.

I would hope the former is working, but for whatever reason native process logic may not be loading on sparc. If we are falling back on the latter, I would have expected existing logic for digging the pid out of a unix-style JVM Process to work just the same on solaris/sparc, but that may not be the case.

Member

headius commented Feb 13, 2018

I'm downloading an x86 solaris vbox image, but I'm not sure I'll be able to reproduce the same issues there.

The pid capture/detection logic happens in one of two ways:

  • If we can use our native process-launching, it comes naturally from posix_spawn.
  • If we have to use JVM process-launching, we need to be able to unwrap the resulting (platform-specific) Process object to dig out the real pid.

I would hope the former is working, but for whatever reason native process logic may not be loading on sparc. If we are falling back on the latter, I would have expected existing logic for digging the pid out of a unix-style JVM Process to work just the same on solaris/sparc, but that may not be the case.

@Tribbles01

This comment has been minimized.

Show comment
Hide comment
@Tribbles01

Tribbles01 Feb 21, 2018

Hi Headius,

I fear this will not help you mcuh further, if you check the output :

xy@123:~/jruby-1.7.27$ ./bin/jruby -e 'p ENV_JAVA["os.name"]'
io/console on JRuby shells out to stty for most operations
"SunOS"

xy@123:~/jruby-9.1.15.0$ ./bin/jruby -e 'p ENV_JAVA["os.name"]'
"SunOS"

But digging furhther unto ENV_JAVA, perhaps this may be something to look at:

xy@123:~/jruby-9.1.15.0$ ./bin/jruby -e 'p ENV_JAVA["os.arch"]'
"sparcv9"

xy@123:~/jruby-1.7.27$ ./bin/jruby -e 'p ENV_JAVA["os.arch"]'
io/console on JRuby shells out to stty for most operations
"sparcv9"

Thanks for your help,
Thorsten

Tribbles01 commented Feb 21, 2018

Hi Headius,

I fear this will not help you mcuh further, if you check the output :

xy@123:~/jruby-1.7.27$ ./bin/jruby -e 'p ENV_JAVA["os.name"]'
io/console on JRuby shells out to stty for most operations
"SunOS"

xy@123:~/jruby-9.1.15.0$ ./bin/jruby -e 'p ENV_JAVA["os.name"]'
"SunOS"

But digging furhther unto ENV_JAVA, perhaps this may be something to look at:

xy@123:~/jruby-9.1.15.0$ ./bin/jruby -e 'p ENV_JAVA["os.arch"]'
"sparcv9"

xy@123:~/jruby-1.7.27$ ./bin/jruby -e 'p ENV_JAVA["os.arch"]'
io/console on JRuby shells out to stty for most operations
"sparcv9"

Thanks for your help,
Thorsten

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Feb 26, 2018

Member

Ok thank you! The OS appears to be detecting properly, since we recognize SunOS as being Solaris. And that sparcv9 should be a supported platform, but I'm guessing we're missing some logic.

Member

headius commented Feb 26, 2018

Ok thank you! The OS appears to be detecting properly, since we recognize SunOS as being Solaris. And that sparcv9 should be a supported platform, but I'm guessing we're missing some logic.

@Tribbles01

This comment has been minimized.

Show comment
Hide comment
@Tribbles01

Tribbles01 Mar 3, 2018

Hi Headius,

thanks for commenting. If there's anything left I can do to support, please let me know.

Thorsten

Tribbles01 commented Mar 3, 2018

Hi Headius,

thanks for commenting. If there's anything left I can do to support, please let me know.

Thorsten

@Tribbles01

This comment has been minimized.

Show comment
Hide comment
@Tribbles01

Tribbles01 Apr 11, 2018

Any news on this issue ?

Thorsten

Tribbles01 commented Apr 11, 2018

Any news on this issue ?

Thorsten

@headius

This comment has been minimized.

Show comment
Hide comment
@headius

headius Apr 12, 2018

Member

Sorry for delays here...I have not found any likely cause for this issue yet.

Perhaps you could gist the output of jruby -J-verbose:jni -e 1?

Also provide the output of running with jruby -Xnative.enabled=false. If it's the same, then we must be falling back on the pure-Java process logic, which could lead to a bogus pid like this.

Member

headius commented Apr 12, 2018

Sorry for delays here...I have not found any likely cause for this issue yet.

Perhaps you could gist the output of jruby -J-verbose:jni -e 1?

Also provide the output of running with jruby -Xnative.enabled=false. If it's the same, then we must be falling back on the pure-Java process logic, which could lead to a bogus pid like this.

@Tribbles01

This comment has been minimized.

Show comment
Hide comment
@Tribbles01

Tribbles01 Apr 18, 2018

Hi Headius,

I did both commands on the 1.7 and 9.1 version so these can be checked against.

for Version 1.7:
bash-4.4$ ./jruby-1.7.27/bin/jruby -J-verbose:jni -e 1
[Dynamic-linking native method java.lang.Object.registerNatives ... JNI]
[Registering JNI native method java.lang.Object.hashCode]
[Registering JNI native method java.lang.Object.wait]
[Registering JNI native method java.lang.Object.notify]
[Registering JNI native method java.lang.Object.notifyAll]
[Registering JNI native method java.lang.Object.clone]
[Dynamic-linking native method java.lang.System.registerNatives ... JNI]
[Registering JNI native method java.lang.System.currentTimeMillis]
[Registering JNI native method java.lang.System.nanoTime]
[Registering JNI native method java.lang.System.arraycopy]
[Dynamic-linking native method java.lang.Thread.registerNatives ... JNI]
[Registering JNI native method java.lang.Thread.start0]
[Registering JNI native method java.lang.Thread.stop0]
[Registering JNI native method java.lang.Thread.isAlive]
[Registering JNI native method java.lang.Thread.suspend0]
[Registering JNI native method java.lang.Thread.resume0]
[Registering JNI native method java.lang.Thread.setPriority0]
[Registering JNI native method java.lang.Thread.yield]
[Registering JNI native method java.lang.Thread.sleep]
[Registering JNI native method java.lang.Thread.currentThread]
[Registering JNI native method java.lang.Thread.countStackFrames]
[Registering JNI native method java.lang.Thread.interrupt0]
[Registering JNI native method java.lang.Thread.isInterrupted]
[Registering JNI native method java.lang.Thread.holdsLock]
[Registering JNI native method java.lang.Thread.getThreads]
[Registering JNI native method java.lang.Thread.dumpThreads]
[Registering JNI native method java.lang.Thread.setNativeName]
[Dynamic-linking native method java.security.AccessController.getStackAccessControlContext ... JNI]
[Dynamic-linking native method java.security.AccessController.getInheritedAccessControlContext ... JNI]
[Dynamic-linking native method java.lang.Class.registerNatives ... JNI]
[Registering JNI native method java.lang.Class.getName0]
[Registering JNI native method java.lang.Class.getSuperclass]
[Registering JNI native method java.lang.Class.getInterfaces0]
[Registering JNI native method java.lang.Class.isInterface]
[Registering JNI native method java.lang.Class.getSigners]
[Registering JNI native method java.lang.Class.setSigners]
[Registering JNI native method java.lang.Class.isArray]
[Registering JNI native method java.lang.Class.isPrimitive]
[Registering JNI native method java.lang.Class.getComponentType]
[Registering JNI native method java.lang.Class.getModifiers]
[Registering JNI native method java.lang.Class.getDeclaredFields0]
[Registering JNI native method java.lang.Class.getDeclaredMethods0]
[Registering JNI native method java.lang.Class.getDeclaredConstructors0]
[Registering JNI native method java.lang.Class.getProtectionDomain0]
[Registering JNI native method java.lang.Class.getDeclaredClasses0]
[Registering JNI native method java.lang.Class.getDeclaringClass0]
[Registering JNI native method java.lang.Class.getGenericSignature0]
[Registering JNI native method java.lang.Class.getRawAnnotations]
[Registering JNI native method java.lang.Class.getConstantPool]
[Registering JNI native method java.lang.Class.desiredAssertionStatus0]
[Registering JNI native method java.lang.Class.getEnclosingMethod0]
[Registering JNI native method java.lang.Class.getRawTypeAnnotations]
[Dynamic-linking native method java.lang.ClassLoader.registerNatives ... JNI]
[Registering JNI native method java.lang.ClassLoader.retrieveDirectives]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.Class.forName0 ... JNI]
[Dynamic-linking native method sun.misc.Unsafe.registerNatives ... JNI]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Dynamic-linking native method java.lang.Throwable.fillInStackTrace ... JNI]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Registering JNI native method sun.misc.Unsafe.defineClass]
[Registering JNI native method sun.misc.Unsafe.allocateInstance]
[Registering JNI native method sun.misc.Unsafe.monitorEnter]
[Registering JNI native method sun.misc.Unsafe.monitorExit]
[Registering JNI native method sun.misc.Unsafe.tryMonitorEnter]
[Registering JNI native method sun.misc.Unsafe.throwException]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapObject]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapInt]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapLong]
[Registering JNI native method sun.misc.Unsafe.putOrderedObject]
[Registering JNI native method sun.misc.Unsafe.putOrderedInt]
[Registering JNI native method sun.misc.Unsafe.putOrderedLong]
[Registering JNI native method sun.misc.Unsafe.park]
[Registering JNI native method sun.misc.Unsafe.unpark]
[Registering JNI native method sun.misc.Unsafe.getLoadAverage]
[Registering JNI native method sun.misc.Unsafe.copyMemory]
[Registering JNI native method sun.misc.Unsafe.setMemory]
[Registering JNI native method sun.misc.Unsafe.defineAnonymousClass]
[Registering JNI native method sun.misc.Unsafe.shouldBeInitialized]
[Registering JNI native method sun.misc.Unsafe.loadFence]
[Registering JNI native method sun.misc.Unsafe.storeFence]
[Registering JNI native method sun.misc.Unsafe.fullFence]
[Dynamic-linking native method sun.reflect.Reflection.getCallerClass ... JNI]
[Dynamic-linking native method java.lang.Class.getPrimitiveClass ... JNI]
[Dynamic-linking native method java.lang.Float.floatToRawIntBits ... JNI]
[Dynamic-linking native method java.lang.Double.doubleToRawLongBits ... JNI]
[Dynamic-linking native method java.lang.Double.longBitsToDouble ... JNI]
[Dynamic-linking native method sun.misc.VM.initialize ... JNI]
[Dynamic-linking native method java.lang.System.initProperties ... JNI]
[Dynamic-linking native method java.lang.Runtime.maxMemory ... JNI]
[Dynamic-linking native method java.io.FileInputStream.initIDs ... JNI]
[Dynamic-linking native method java.io.FileDescriptor.initIDs ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.initIDs ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.String.intern ... JNI]
[Dynamic-linking native method java.lang.Class.isAssignableFrom ... JNI]
[Dynamic-linking native method java.lang.System.setIn0 ... JNI]
[Dynamic-linking native method java.util.concurrent.atomic.AtomicLong.VMSupportsCS8 ... JNI]
[Dynamic-linking native method java.lang.System.setOut0 ... JNI]
[Dynamic-linking native method java.lang.System.setErr0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.initIDs ... JNI]
[Dynamic-linking native method java.lang.System.mapLibraryName ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findBuiltinLib ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.getBooleanAttributes0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.canonicalize0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.load ... JNI]
[Dynamic-linking native method sun.misc.Signal.findSignal ... JNI]
[Dynamic-linking native method sun.misc.Signal.handle0 ... JNI]
[Dynamic-linking native method java.lang.Compiler.registerNatives ... JNI]
[Registering JNI native method java.lang.Compiler.compileClass]
[Registering JNI native method java.lang.Compiler.compileClasses]
[Registering JNI native method java.lang.Compiler.command]
[Registering JNI native method java.lang.Compiler.enable]
[Registering JNI native method java.lang.Compiler.disable]
[Dynamic-linking native method java.io.FileInputStream.open0 ... JNI]
[Dynamic-linking native method java.io.FileInputStream.readBytes ... JNI]
[Dynamic-linking native method java.io.FileInputStream.available ... JNI]
[Dynamic-linking native method java.lang.Object.getClass ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.newArray ... JNI]
[Dynamic-linking native method java.io.FileInputStream.close0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.list ... JNI]
[Dynamic-linking native method java.lang.Runtime.availableProcessors ... JNI]
[Dynamic-linking native method sun.reflect.Reflection.getClassAccessFlags ... JNI]
[Dynamic-linking native method sun.reflect.NativeConstructorAccessorImpl.newInstance0 ... JNI]
[Dynamic-linking native method sun.misc.URLClassPath.getLookupCacheURLs ... JNI]
[Dynamic-linking native method java.lang.invoke.MethodHandleNatives.registerNatives ... JNI]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.init]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.expand]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.resolve]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getConstant]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getNamedCon]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMembers]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.objectFieldOffset]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetVolatile]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldOffset]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldBase]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMemberVMInfo]
[Registering JNI native method java.lang.invoke.MethodHandle.invoke]
[Registering JNI native method java.lang.invoke.MethodHandle.invokeExact]
[Dynamic-linking native method java.io.FileOutputStream.open0 ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.writeBytes ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.close0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findLoadedClass0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findBootstrapClass ... JNI]
[Dynamic-linking native method sun.reflect.NativeMethodAccessorImpl.invoke0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.find ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.initIDs ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.getLastModifiedTime ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.open ... JNI]
[Dynamic-linking native method sun.misc.Perf.registerNatives ... JNI]
[Registering JNI native method sun.misc.Perf.attach]
[Registering JNI native method sun.misc.Perf.detach]
[Registering JNI native method sun.misc.Perf.createLong]
[Registering JNI native method sun.misc.Perf.createByteArray]
[Registering JNI native method sun.misc.Perf.highResCounter]
[Registering JNI native method sun.misc.Perf.highResFrequency]
[Dynamic-linking native method java.util.zip.ZipFile.getTotal ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.startsWithLOC ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntry ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryFlag ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryTime ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCrc ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntrySize ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCSize ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryMethod ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryBytes ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.freeEntry ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.initIDs ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.init ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.inflateBytes ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.read ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.reset ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.Class.isInstance ... JNI]
[Dynamic-linking native method java.lang.StrictMath.log ... JNI]
[Dynamic-linking native method java.lang.ProcessEnvironment.environ ... JNI]
[Dynamic-linking native method java.util.TimeZone.getSystemTimeZoneID ... JNI]
[Dynamic-linking native method java.util.zip.CRC32.updateBytes ... JNI]
[Dynamic-linking native method java.lang.Package.getSystemPackage0 ... JNI]
[Dynamic-linking native method java.util.jar.JarFile.getMetaInfEntryNames ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.checkAccess ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.defineClass1 ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.UcryptoProvider.loadLibraries ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.UcryptoProvider.getMechList ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.initializeLibrary ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.connect ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_Initialize ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetSlotList ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetSlotInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetTokenInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_OpenSession ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetMechanismList ... JNI]
[Dynamic-linking native method java.lang.System.identityHashCode ... JNI]
[Dynamic-linking native method sun.reflect.ConstantPool.getUTF8At0 ... JNI]
[Dynamic-linking native method java.lang.reflect.Proxy.defineClass0 ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.getLength ... JNI]
[Dynamic-linking native method java.lang.StrictMath.pow ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.end ... JNI]
[Dynamic-linking native method sun.nio.ch.IOUtil.initIDs ... JNI]
[Dynamic-linking native method sun.nio.ch.IOUtil.iovMax ... JNI]
[Dynamic-linking native method sun.nio.ch.FileChannelImpl.initIDs ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getNextEntry ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_CreateObject ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeUpdate ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.init ... JNI]
[Dynamic-linking native method java.net.InetAddress.init ... JNI]
[Dynamic-linking native method java.net.InetAddressImplFactory.isIPv6Supported ... JNI]
[Dynamic-linking native method java.net.Inet4Address.init ... JNI]
[Dynamic-linking native method java.net.Inet6Address.init ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.getAll ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.getMacAddr0 ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.init ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.getcwd ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.open0 ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.dup ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.fdopendir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.readdir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.closedir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.close ... JNI]
[Dynamic-linking native method java.lang.Runtime.totalMemory ... JNI]
[Dynamic-linking native method java.lang.Runtime.freeMemory ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeDigest ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetAttributeValue ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeKey$RSAPublic.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeUpdate ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeFinal ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetMechanismInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_VerifyInit ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_Verify ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.close ... JNI]
[Dynamic-linking native method java.lang.UNIXProcess.init ... JNI]
[Dynamic-linking native method java.lang.Throwable.getStackTraceDepth ... JNI]
[Dynamic-linking native method java.lang.Throwable.getStackTraceElement ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.set ... JNI]
[Dynamic-linking native method java.lang.UNIXProcess.forkAndExec ... JNI]
[Dynamic-linking native method java.lang.UNIXProcess.waitForProcessExit ... JNI]
io/console on JRuby shells out to stty for most operations

bash-4.4$ ./jruby-1.7.27/bin/jruby -Xnative.enabled=false -Xnative.verbose=true -Xnative.net.protocol=true -e 'pipe=IO.popen("sleep 3"); puts pipe.pid; puts File.blockdev?("/")'
io/console on JRuby shells out to stty for most operations
28480
NotImplementedError: block device detection unsupported or native support failed to load
blockdev? at org/jruby/RubyFileTest.java:67
(root) at -e:1


For Version 9.1:

bash-4.4$ ./jruby-9.1.15.0/bin/jruby -J-verbose:jni -e 1
[Dynamic-linking native method java.lang.Object.registerNatives ... JNI]
[Registering JNI native method java.lang.Object.hashCode]
[Registering JNI native method java.lang.Object.wait]
[Registering JNI native method java.lang.Object.notify]
[Registering JNI native method java.lang.Object.notifyAll]
[Registering JNI native method java.lang.Object.clone]
[Dynamic-linking native method java.lang.System.registerNatives ... JNI]
[Registering JNI native method java.lang.System.currentTimeMillis]
[Registering JNI native method java.lang.System.nanoTime]
[Registering JNI native method java.lang.System.arraycopy]
[Dynamic-linking native method java.lang.Thread.registerNatives ... JNI]
[Registering JNI native method java.lang.Thread.start0]
[Registering JNI native method java.lang.Thread.stop0]
[Registering JNI native method java.lang.Thread.isAlive]
[Registering JNI native method java.lang.Thread.suspend0]
[Registering JNI native method java.lang.Thread.resume0]
[Registering JNI native method java.lang.Thread.setPriority0]
[Registering JNI native method java.lang.Thread.yield]
[Registering JNI native method java.lang.Thread.sleep]
[Registering JNI native method java.lang.Thread.currentThread]
[Registering JNI native method java.lang.Thread.countStackFrames]
[Registering JNI native method java.lang.Thread.interrupt0]
[Registering JNI native method java.lang.Thread.isInterrupted]
[Registering JNI native method java.lang.Thread.holdsLock]
[Registering JNI native method java.lang.Thread.getThreads]
[Registering JNI native method java.lang.Thread.dumpThreads]
[Registering JNI native method java.lang.Thread.setNativeName]
[Dynamic-linking native method java.security.AccessController.getStackAccessControlContext ... JNI]
[Dynamic-linking native method java.security.AccessController.getInheritedAccessControlContext ... JNI]
[Dynamic-linking native method java.lang.Class.registerNatives ... JNI]
[Registering JNI native method java.lang.Class.getName0]
[Registering JNI native method java.lang.Class.getSuperclass]
[Registering JNI native method java.lang.Class.getInterfaces0]
[Registering JNI native method java.lang.Class.isInterface]
[Registering JNI native method java.lang.Class.getSigners]
[Registering JNI native method java.lang.Class.setSigners]
[Registering JNI native method java.lang.Class.isArray]
[Registering JNI native method java.lang.Class.isPrimitive]
[Registering JNI native method java.lang.Class.getComponentType]
[Registering JNI native method java.lang.Class.getModifiers]
[Registering JNI native method java.lang.Class.getDeclaredFields0]
[Registering JNI native method java.lang.Class.getDeclaredMethods0]
[Registering JNI native method java.lang.Class.getDeclaredConstructors0]
[Registering JNI native method java.lang.Class.getProtectionDomain0]
[Registering JNI native method java.lang.Class.getDeclaredClasses0]
[Registering JNI native method java.lang.Class.getDeclaringClass0]
[Registering JNI native method java.lang.Class.getGenericSignature0]
[Registering JNI native method java.lang.Class.getRawAnnotations]
[Registering JNI native method java.lang.Class.getConstantPool]
[Registering JNI native method java.lang.Class.desiredAssertionStatus0]
[Registering JNI native method java.lang.Class.getEnclosingMethod0]
[Registering JNI native method java.lang.Class.getRawTypeAnnotations]
[Dynamic-linking native method java.lang.ClassLoader.registerNatives ... JNI]
[Registering JNI native method java.lang.ClassLoader.retrieveDirectives]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.Class.forName0 ... JNI]
[Dynamic-linking native method sun.misc.Unsafe.registerNatives ... JNI]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Dynamic-linking native method java.lang.Throwable.fillInStackTrace ... JNI]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Registering JNI native method sun.misc.Unsafe.defineClass]
[Registering JNI native method sun.misc.Unsafe.allocateInstance]
[Registering JNI native method sun.misc.Unsafe.monitorEnter]
[Registering JNI native method sun.misc.Unsafe.monitorExit]
[Registering JNI native method sun.misc.Unsafe.tryMonitorEnter]
[Registering JNI native method sun.misc.Unsafe.throwException]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapObject]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapInt]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapLong]
[Registering JNI native method sun.misc.Unsafe.putOrderedObject]
[Registering JNI native method sun.misc.Unsafe.putOrderedInt]
[Registering JNI native method sun.misc.Unsafe.putOrderedLong]
[Registering JNI native method sun.misc.Unsafe.park]
[Registering JNI native method sun.misc.Unsafe.unpark]
[Registering JNI native method sun.misc.Unsafe.getLoadAverage]
[Registering JNI native method sun.misc.Unsafe.copyMemory]
[Registering JNI native method sun.misc.Unsafe.setMemory]
[Registering JNI native method sun.misc.Unsafe.defineAnonymousClass]
[Registering JNI native method sun.misc.Unsafe.shouldBeInitialized]
[Registering JNI native method sun.misc.Unsafe.loadFence]
[Registering JNI native method sun.misc.Unsafe.storeFence]
[Registering JNI native method sun.misc.Unsafe.fullFence]
[Dynamic-linking native method sun.reflect.Reflection.getCallerClass ... JNI]
[Dynamic-linking native method java.lang.Class.getPrimitiveClass ... JNI]
[Dynamic-linking native method java.lang.Float.floatToRawIntBits ... JNI]
[Dynamic-linking native method java.lang.Double.doubleToRawLongBits ... JNI]
[Dynamic-linking native method java.lang.Double.longBitsToDouble ... JNI]
[Dynamic-linking native method sun.misc.VM.initialize ... JNI]
[Dynamic-linking native method java.lang.System.initProperties ... JNI]
[Dynamic-linking native method java.lang.Runtime.maxMemory ... JNI]
[Dynamic-linking native method java.io.FileInputStream.initIDs ... JNI]
[Dynamic-linking native method java.io.FileDescriptor.initIDs ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.initIDs ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.String.intern ... JNI]
[Dynamic-linking native method java.lang.Class.isAssignableFrom ... JNI]
[Dynamic-linking native method java.lang.System.setIn0 ... JNI]
[Dynamic-linking native method java.util.concurrent.atomic.AtomicLong.VMSupportsCS8 ... JNI]
[Dynamic-linking native method java.lang.System.setOut0 ... JNI]
[Dynamic-linking native method java.lang.System.setErr0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.initIDs ... JNI]
[Dynamic-linking native method java.lang.System.mapLibraryName ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findBuiltinLib ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.getBooleanAttributes0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.canonicalize0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.load ... JNI]
[Dynamic-linking native method sun.misc.Signal.findSignal ... JNI]
[Dynamic-linking native method sun.misc.Signal.handle0 ... JNI]
[Dynamic-linking native method java.lang.Compiler.registerNatives ... JNI]
[Registering JNI native method java.lang.Compiler.compileClass]
[Registering JNI native method java.lang.Compiler.compileClasses]
[Registering JNI native method java.lang.Compiler.command]
[Registering JNI native method java.lang.Compiler.enable]
[Registering JNI native method java.lang.Compiler.disable]
[Dynamic-linking native method java.io.FileInputStream.open0 ... JNI]
[Dynamic-linking native method java.io.FileInputStream.readBytes ... JNI]
[Dynamic-linking native method java.io.FileInputStream.available ... JNI]
[Dynamic-linking native method java.lang.Object.getClass ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.newArray ... JNI]
[Dynamic-linking native method java.io.FileInputStream.close0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.list ... JNI]
[Dynamic-linking native method java.lang.Runtime.availableProcessors ... JNI]
[Dynamic-linking native method sun.reflect.Reflection.getClassAccessFlags ... JNI]
[Dynamic-linking native method sun.reflect.NativeConstructorAccessorImpl.newInstance0 ... JNI]
[Dynamic-linking native method sun.misc.URLClassPath.getLookupCacheURLs ... JNI]
[Dynamic-linking native method java.lang.invoke.MethodHandleNatives.registerNatives ... JNI]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.init]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.expand]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.resolve]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getConstant]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getNamedCon]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMembers]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.objectFieldOffset]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetVolatile]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldOffset]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldBase]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMemberVMInfo]
[Registering JNI native method java.lang.invoke.MethodHandle.invoke]
[Registering JNI native method java.lang.invoke.MethodHandle.invokeExact]
[Dynamic-linking native method java.io.FileOutputStream.open0 ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.writeBytes ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.close0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findLoadedClass0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findBootstrapClass ... JNI]
[Dynamic-linking native method sun.reflect.NativeMethodAccessorImpl.invoke0 ... JNI]
[Dynamic-linking native method java.lang.StrictMath.log ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.find ... JNI]
[Dynamic-linking native method com.sun.security.auth.module.UnixSystem.getUnixInfo ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.initIDs ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.getLastModifiedTime ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.open ... JNI]
[Dynamic-linking native method sun.misc.Perf.registerNatives ... JNI]
[Registering JNI native method sun.misc.Perf.attach]
[Registering JNI native method sun.misc.Perf.detach]
[Registering JNI native method sun.misc.Perf.createLong]
[Registering JNI native method sun.misc.Perf.createByteArray]
[Registering JNI native method sun.misc.Perf.highResCounter]
[Registering JNI native method sun.misc.Perf.highResFrequency]
[Dynamic-linking native method java.util.zip.ZipFile.getTotal ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.startsWithLOC ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntry ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryFlag ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryTime ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCrc ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntrySize ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCSize ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryMethod ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryBytes ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.freeEntry ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.initIDs ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.init ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.inflateBytes ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.read ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.reset ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.Class.isInstance ... JNI]
[Dynamic-linking native method java.lang.ProcessEnvironment.environ ... JNI]
[Dynamic-linking native method java.util.TimeZone.getSystemTimeZoneID ... JNI]
[Dynamic-linking native method java.util.zip.CRC32.updateBytes ... JNI]
[Dynamic-linking native method java.lang.Package.getSystemPackage0 ... JNI]
[Dynamic-linking native method java.util.jar.JarFile.getMetaInfEntryNames ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.checkAccess ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.defineClass1 ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.UcryptoProvider.loadLibraries ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.UcryptoProvider.getMechList ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.initializeLibrary ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.connect ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_Initialize ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetSlotList ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetSlotInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetTokenInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_OpenSession ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetMechanismList ... JNI]
[Dynamic-linking native method java.lang.System.identityHashCode ... JNI]
[Dynamic-linking native method sun.reflect.ConstantPool.getUTF8At0 ... JNI]
[Dynamic-linking native method java.lang.reflect.Proxy.defineClass0 ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.getLength ... JNI]
[Dynamic-linking native method java.lang.StrictMath.pow ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.end ... JNI]
[Dynamic-linking native method java.lang.UNIXProcess.init ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getVersion ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.init ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.lookupBuiltinType ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getTypeType ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getTypeSize ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getTypeAlign ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getSaveErrnoFunction ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.pageSize ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.mmap ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.munmap ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getArch ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.dlopen ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.dlsym ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.newCallContext ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getCallContextRawParameterSize ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.dlerror ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.resolveClass0 ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.invokeArrayO1Int32 ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.invokeArrayReturnInt ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.setLastError ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getNextEntry ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_CreateObject ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeUpdate ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.init ... JNI]
[Dynamic-linking native method java.net.InetAddress.init ... JNI]
[Dynamic-linking native method java.net.InetAddressImplFactory.isIPv6Supported ... JNI]
[Dynamic-linking native method java.net.Inet4Address.init ... JNI]
[Dynamic-linking native method java.net.Inet6Address.init ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.getAll ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.getMacAddr0 ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.init ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.getcwd ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.open0 ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.dup ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.fdopendir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.readdir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.closedir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.close ... JNI]
[Dynamic-linking native method java.lang.Runtime.totalMemory ... JNI]
[Dynamic-linking native method java.lang.Runtime.freeMemory ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeDigest ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetMechanismInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_VerifyInit ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_Verify ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetAttributeValue ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeKey$RSAPublic.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeUpdate ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeFinal ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.close ... JNI]
[Dynamic-linking native method java.lang.Throwable.getStackTraceDepth ... JNI]
[Dynamic-linking native method java.lang.Throwable.getStackTraceElement ... JNI]
[Dynamic-linking native method sun.nio.ch.IOUtil.initIDs ... JNI]
[Dynamic-linking native method sun.nio.ch.IOUtil.iovMax ... JNI]
[Dynamic-linking native method sun.nio.ch.FileChannelImpl.initIDs ... JNI]

bash-4.4$ ./jruby-9.1.15.0/bin/jruby -Xnative.enabled=false -Xnative.verbose=true -Xnative.net.protocol=true -e 'pipe=IO.popen("sleep 3"); puts pipe.pid; puts File.blockdev?("/")'
27047
NotImplementedError: block device detection unsupported or native support failed to load; see http://wiki.jruby.org/Native-Libraries
blockdev? at org/jruby/RubyFileTest.java:72

at -e:1

Hope this helps out,
Thorsten

Tribbles01 commented Apr 18, 2018

Hi Headius,

I did both commands on the 1.7 and 9.1 version so these can be checked against.

for Version 1.7:
bash-4.4$ ./jruby-1.7.27/bin/jruby -J-verbose:jni -e 1
[Dynamic-linking native method java.lang.Object.registerNatives ... JNI]
[Registering JNI native method java.lang.Object.hashCode]
[Registering JNI native method java.lang.Object.wait]
[Registering JNI native method java.lang.Object.notify]
[Registering JNI native method java.lang.Object.notifyAll]
[Registering JNI native method java.lang.Object.clone]
[Dynamic-linking native method java.lang.System.registerNatives ... JNI]
[Registering JNI native method java.lang.System.currentTimeMillis]
[Registering JNI native method java.lang.System.nanoTime]
[Registering JNI native method java.lang.System.arraycopy]
[Dynamic-linking native method java.lang.Thread.registerNatives ... JNI]
[Registering JNI native method java.lang.Thread.start0]
[Registering JNI native method java.lang.Thread.stop0]
[Registering JNI native method java.lang.Thread.isAlive]
[Registering JNI native method java.lang.Thread.suspend0]
[Registering JNI native method java.lang.Thread.resume0]
[Registering JNI native method java.lang.Thread.setPriority0]
[Registering JNI native method java.lang.Thread.yield]
[Registering JNI native method java.lang.Thread.sleep]
[Registering JNI native method java.lang.Thread.currentThread]
[Registering JNI native method java.lang.Thread.countStackFrames]
[Registering JNI native method java.lang.Thread.interrupt0]
[Registering JNI native method java.lang.Thread.isInterrupted]
[Registering JNI native method java.lang.Thread.holdsLock]
[Registering JNI native method java.lang.Thread.getThreads]
[Registering JNI native method java.lang.Thread.dumpThreads]
[Registering JNI native method java.lang.Thread.setNativeName]
[Dynamic-linking native method java.security.AccessController.getStackAccessControlContext ... JNI]
[Dynamic-linking native method java.security.AccessController.getInheritedAccessControlContext ... JNI]
[Dynamic-linking native method java.lang.Class.registerNatives ... JNI]
[Registering JNI native method java.lang.Class.getName0]
[Registering JNI native method java.lang.Class.getSuperclass]
[Registering JNI native method java.lang.Class.getInterfaces0]
[Registering JNI native method java.lang.Class.isInterface]
[Registering JNI native method java.lang.Class.getSigners]
[Registering JNI native method java.lang.Class.setSigners]
[Registering JNI native method java.lang.Class.isArray]
[Registering JNI native method java.lang.Class.isPrimitive]
[Registering JNI native method java.lang.Class.getComponentType]
[Registering JNI native method java.lang.Class.getModifiers]
[Registering JNI native method java.lang.Class.getDeclaredFields0]
[Registering JNI native method java.lang.Class.getDeclaredMethods0]
[Registering JNI native method java.lang.Class.getDeclaredConstructors0]
[Registering JNI native method java.lang.Class.getProtectionDomain0]
[Registering JNI native method java.lang.Class.getDeclaredClasses0]
[Registering JNI native method java.lang.Class.getDeclaringClass0]
[Registering JNI native method java.lang.Class.getGenericSignature0]
[Registering JNI native method java.lang.Class.getRawAnnotations]
[Registering JNI native method java.lang.Class.getConstantPool]
[Registering JNI native method java.lang.Class.desiredAssertionStatus0]
[Registering JNI native method java.lang.Class.getEnclosingMethod0]
[Registering JNI native method java.lang.Class.getRawTypeAnnotations]
[Dynamic-linking native method java.lang.ClassLoader.registerNatives ... JNI]
[Registering JNI native method java.lang.ClassLoader.retrieveDirectives]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.Class.forName0 ... JNI]
[Dynamic-linking native method sun.misc.Unsafe.registerNatives ... JNI]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Dynamic-linking native method java.lang.Throwable.fillInStackTrace ... JNI]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Registering JNI native method sun.misc.Unsafe.defineClass]
[Registering JNI native method sun.misc.Unsafe.allocateInstance]
[Registering JNI native method sun.misc.Unsafe.monitorEnter]
[Registering JNI native method sun.misc.Unsafe.monitorExit]
[Registering JNI native method sun.misc.Unsafe.tryMonitorEnter]
[Registering JNI native method sun.misc.Unsafe.throwException]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapObject]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapInt]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapLong]
[Registering JNI native method sun.misc.Unsafe.putOrderedObject]
[Registering JNI native method sun.misc.Unsafe.putOrderedInt]
[Registering JNI native method sun.misc.Unsafe.putOrderedLong]
[Registering JNI native method sun.misc.Unsafe.park]
[Registering JNI native method sun.misc.Unsafe.unpark]
[Registering JNI native method sun.misc.Unsafe.getLoadAverage]
[Registering JNI native method sun.misc.Unsafe.copyMemory]
[Registering JNI native method sun.misc.Unsafe.setMemory]
[Registering JNI native method sun.misc.Unsafe.defineAnonymousClass]
[Registering JNI native method sun.misc.Unsafe.shouldBeInitialized]
[Registering JNI native method sun.misc.Unsafe.loadFence]
[Registering JNI native method sun.misc.Unsafe.storeFence]
[Registering JNI native method sun.misc.Unsafe.fullFence]
[Dynamic-linking native method sun.reflect.Reflection.getCallerClass ... JNI]
[Dynamic-linking native method java.lang.Class.getPrimitiveClass ... JNI]
[Dynamic-linking native method java.lang.Float.floatToRawIntBits ... JNI]
[Dynamic-linking native method java.lang.Double.doubleToRawLongBits ... JNI]
[Dynamic-linking native method java.lang.Double.longBitsToDouble ... JNI]
[Dynamic-linking native method sun.misc.VM.initialize ... JNI]
[Dynamic-linking native method java.lang.System.initProperties ... JNI]
[Dynamic-linking native method java.lang.Runtime.maxMemory ... JNI]
[Dynamic-linking native method java.io.FileInputStream.initIDs ... JNI]
[Dynamic-linking native method java.io.FileDescriptor.initIDs ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.initIDs ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.String.intern ... JNI]
[Dynamic-linking native method java.lang.Class.isAssignableFrom ... JNI]
[Dynamic-linking native method java.lang.System.setIn0 ... JNI]
[Dynamic-linking native method java.util.concurrent.atomic.AtomicLong.VMSupportsCS8 ... JNI]
[Dynamic-linking native method java.lang.System.setOut0 ... JNI]
[Dynamic-linking native method java.lang.System.setErr0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.initIDs ... JNI]
[Dynamic-linking native method java.lang.System.mapLibraryName ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findBuiltinLib ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.getBooleanAttributes0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.canonicalize0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.load ... JNI]
[Dynamic-linking native method sun.misc.Signal.findSignal ... JNI]
[Dynamic-linking native method sun.misc.Signal.handle0 ... JNI]
[Dynamic-linking native method java.lang.Compiler.registerNatives ... JNI]
[Registering JNI native method java.lang.Compiler.compileClass]
[Registering JNI native method java.lang.Compiler.compileClasses]
[Registering JNI native method java.lang.Compiler.command]
[Registering JNI native method java.lang.Compiler.enable]
[Registering JNI native method java.lang.Compiler.disable]
[Dynamic-linking native method java.io.FileInputStream.open0 ... JNI]
[Dynamic-linking native method java.io.FileInputStream.readBytes ... JNI]
[Dynamic-linking native method java.io.FileInputStream.available ... JNI]
[Dynamic-linking native method java.lang.Object.getClass ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.newArray ... JNI]
[Dynamic-linking native method java.io.FileInputStream.close0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.list ... JNI]
[Dynamic-linking native method java.lang.Runtime.availableProcessors ... JNI]
[Dynamic-linking native method sun.reflect.Reflection.getClassAccessFlags ... JNI]
[Dynamic-linking native method sun.reflect.NativeConstructorAccessorImpl.newInstance0 ... JNI]
[Dynamic-linking native method sun.misc.URLClassPath.getLookupCacheURLs ... JNI]
[Dynamic-linking native method java.lang.invoke.MethodHandleNatives.registerNatives ... JNI]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.init]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.expand]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.resolve]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getConstant]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getNamedCon]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMembers]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.objectFieldOffset]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetVolatile]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldOffset]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldBase]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMemberVMInfo]
[Registering JNI native method java.lang.invoke.MethodHandle.invoke]
[Registering JNI native method java.lang.invoke.MethodHandle.invokeExact]
[Dynamic-linking native method java.io.FileOutputStream.open0 ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.writeBytes ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.close0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findLoadedClass0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findBootstrapClass ... JNI]
[Dynamic-linking native method sun.reflect.NativeMethodAccessorImpl.invoke0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.find ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.initIDs ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.getLastModifiedTime ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.open ... JNI]
[Dynamic-linking native method sun.misc.Perf.registerNatives ... JNI]
[Registering JNI native method sun.misc.Perf.attach]
[Registering JNI native method sun.misc.Perf.detach]
[Registering JNI native method sun.misc.Perf.createLong]
[Registering JNI native method sun.misc.Perf.createByteArray]
[Registering JNI native method sun.misc.Perf.highResCounter]
[Registering JNI native method sun.misc.Perf.highResFrequency]
[Dynamic-linking native method java.util.zip.ZipFile.getTotal ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.startsWithLOC ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntry ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryFlag ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryTime ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCrc ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntrySize ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCSize ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryMethod ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryBytes ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.freeEntry ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.initIDs ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.init ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.inflateBytes ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.read ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.reset ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.Class.isInstance ... JNI]
[Dynamic-linking native method java.lang.StrictMath.log ... JNI]
[Dynamic-linking native method java.lang.ProcessEnvironment.environ ... JNI]
[Dynamic-linking native method java.util.TimeZone.getSystemTimeZoneID ... JNI]
[Dynamic-linking native method java.util.zip.CRC32.updateBytes ... JNI]
[Dynamic-linking native method java.lang.Package.getSystemPackage0 ... JNI]
[Dynamic-linking native method java.util.jar.JarFile.getMetaInfEntryNames ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.checkAccess ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.defineClass1 ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.UcryptoProvider.loadLibraries ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.UcryptoProvider.getMechList ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.initializeLibrary ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.connect ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_Initialize ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetSlotList ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetSlotInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetTokenInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_OpenSession ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetMechanismList ... JNI]
[Dynamic-linking native method java.lang.System.identityHashCode ... JNI]
[Dynamic-linking native method sun.reflect.ConstantPool.getUTF8At0 ... JNI]
[Dynamic-linking native method java.lang.reflect.Proxy.defineClass0 ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.getLength ... JNI]
[Dynamic-linking native method java.lang.StrictMath.pow ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.end ... JNI]
[Dynamic-linking native method sun.nio.ch.IOUtil.initIDs ... JNI]
[Dynamic-linking native method sun.nio.ch.IOUtil.iovMax ... JNI]
[Dynamic-linking native method sun.nio.ch.FileChannelImpl.initIDs ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getNextEntry ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_CreateObject ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeUpdate ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.init ... JNI]
[Dynamic-linking native method java.net.InetAddress.init ... JNI]
[Dynamic-linking native method java.net.InetAddressImplFactory.isIPv6Supported ... JNI]
[Dynamic-linking native method java.net.Inet4Address.init ... JNI]
[Dynamic-linking native method java.net.Inet6Address.init ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.getAll ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.getMacAddr0 ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.init ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.getcwd ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.open0 ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.dup ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.fdopendir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.readdir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.closedir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.close ... JNI]
[Dynamic-linking native method java.lang.Runtime.totalMemory ... JNI]
[Dynamic-linking native method java.lang.Runtime.freeMemory ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeDigest ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetAttributeValue ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeKey$RSAPublic.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeUpdate ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeFinal ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetMechanismInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_VerifyInit ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_Verify ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.close ... JNI]
[Dynamic-linking native method java.lang.UNIXProcess.init ... JNI]
[Dynamic-linking native method java.lang.Throwable.getStackTraceDepth ... JNI]
[Dynamic-linking native method java.lang.Throwable.getStackTraceElement ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.set ... JNI]
[Dynamic-linking native method java.lang.UNIXProcess.forkAndExec ... JNI]
[Dynamic-linking native method java.lang.UNIXProcess.waitForProcessExit ... JNI]
io/console on JRuby shells out to stty for most operations

bash-4.4$ ./jruby-1.7.27/bin/jruby -Xnative.enabled=false -Xnative.verbose=true -Xnative.net.protocol=true -e 'pipe=IO.popen("sleep 3"); puts pipe.pid; puts File.blockdev?("/")'
io/console on JRuby shells out to stty for most operations
28480
NotImplementedError: block device detection unsupported or native support failed to load
blockdev? at org/jruby/RubyFileTest.java:67
(root) at -e:1


For Version 9.1:

bash-4.4$ ./jruby-9.1.15.0/bin/jruby -J-verbose:jni -e 1
[Dynamic-linking native method java.lang.Object.registerNatives ... JNI]
[Registering JNI native method java.lang.Object.hashCode]
[Registering JNI native method java.lang.Object.wait]
[Registering JNI native method java.lang.Object.notify]
[Registering JNI native method java.lang.Object.notifyAll]
[Registering JNI native method java.lang.Object.clone]
[Dynamic-linking native method java.lang.System.registerNatives ... JNI]
[Registering JNI native method java.lang.System.currentTimeMillis]
[Registering JNI native method java.lang.System.nanoTime]
[Registering JNI native method java.lang.System.arraycopy]
[Dynamic-linking native method java.lang.Thread.registerNatives ... JNI]
[Registering JNI native method java.lang.Thread.start0]
[Registering JNI native method java.lang.Thread.stop0]
[Registering JNI native method java.lang.Thread.isAlive]
[Registering JNI native method java.lang.Thread.suspend0]
[Registering JNI native method java.lang.Thread.resume0]
[Registering JNI native method java.lang.Thread.setPriority0]
[Registering JNI native method java.lang.Thread.yield]
[Registering JNI native method java.lang.Thread.sleep]
[Registering JNI native method java.lang.Thread.currentThread]
[Registering JNI native method java.lang.Thread.countStackFrames]
[Registering JNI native method java.lang.Thread.interrupt0]
[Registering JNI native method java.lang.Thread.isInterrupted]
[Registering JNI native method java.lang.Thread.holdsLock]
[Registering JNI native method java.lang.Thread.getThreads]
[Registering JNI native method java.lang.Thread.dumpThreads]
[Registering JNI native method java.lang.Thread.setNativeName]
[Dynamic-linking native method java.security.AccessController.getStackAccessControlContext ... JNI]
[Dynamic-linking native method java.security.AccessController.getInheritedAccessControlContext ... JNI]
[Dynamic-linking native method java.lang.Class.registerNatives ... JNI]
[Registering JNI native method java.lang.Class.getName0]
[Registering JNI native method java.lang.Class.getSuperclass]
[Registering JNI native method java.lang.Class.getInterfaces0]
[Registering JNI native method java.lang.Class.isInterface]
[Registering JNI native method java.lang.Class.getSigners]
[Registering JNI native method java.lang.Class.setSigners]
[Registering JNI native method java.lang.Class.isArray]
[Registering JNI native method java.lang.Class.isPrimitive]
[Registering JNI native method java.lang.Class.getComponentType]
[Registering JNI native method java.lang.Class.getModifiers]
[Registering JNI native method java.lang.Class.getDeclaredFields0]
[Registering JNI native method java.lang.Class.getDeclaredMethods0]
[Registering JNI native method java.lang.Class.getDeclaredConstructors0]
[Registering JNI native method java.lang.Class.getProtectionDomain0]
[Registering JNI native method java.lang.Class.getDeclaredClasses0]
[Registering JNI native method java.lang.Class.getDeclaringClass0]
[Registering JNI native method java.lang.Class.getGenericSignature0]
[Registering JNI native method java.lang.Class.getRawAnnotations]
[Registering JNI native method java.lang.Class.getConstantPool]
[Registering JNI native method java.lang.Class.desiredAssertionStatus0]
[Registering JNI native method java.lang.Class.getEnclosingMethod0]
[Registering JNI native method java.lang.Class.getRawTypeAnnotations]
[Dynamic-linking native method java.lang.ClassLoader.registerNatives ... JNI]
[Registering JNI native method java.lang.ClassLoader.retrieveDirectives]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.Class.forName0 ... JNI]
[Dynamic-linking native method sun.misc.Unsafe.registerNatives ... JNI]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Dynamic-linking native method java.lang.Throwable.fillInStackTrace ... JNI]
[Registering JNI native method sun.misc.Unsafe.getObject]
[Registering JNI native method sun.misc.Unsafe.putObject]
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile]
[Registering JNI native method sun.misc.Unsafe.getBoolean]
[Registering JNI native method sun.misc.Unsafe.putBoolean]
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getByteVolatile]
[Registering JNI native method sun.misc.Unsafe.putByteVolatile]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getShortVolatile]
[Registering JNI native method sun.misc.Unsafe.putShortVolatile]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getCharVolatile]
[Registering JNI native method sun.misc.Unsafe.putCharVolatile]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getIntVolatile]
[Registering JNI native method sun.misc.Unsafe.putIntVolatile]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getLongVolatile]
[Registering JNI native method sun.misc.Unsafe.putLongVolatile]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile]
[Registering JNI native method sun.misc.Unsafe.getByte]
[Registering JNI native method sun.misc.Unsafe.putByte]
[Registering JNI native method sun.misc.Unsafe.getShort]
[Registering JNI native method sun.misc.Unsafe.putShort]
[Registering JNI native method sun.misc.Unsafe.getChar]
[Registering JNI native method sun.misc.Unsafe.putChar]
[Registering JNI native method sun.misc.Unsafe.getInt]
[Registering JNI native method sun.misc.Unsafe.putInt]
[Registering JNI native method sun.misc.Unsafe.getLong]
[Registering JNI native method sun.misc.Unsafe.putLong]
[Registering JNI native method sun.misc.Unsafe.getFloat]
[Registering JNI native method sun.misc.Unsafe.putFloat]
[Registering JNI native method sun.misc.Unsafe.getDouble]
[Registering JNI native method sun.misc.Unsafe.putDouble]
[Registering JNI native method sun.misc.Unsafe.getAddress]
[Registering JNI native method sun.misc.Unsafe.putAddress]
[Registering JNI native method sun.misc.Unsafe.allocateMemory]
[Registering JNI native method sun.misc.Unsafe.reallocateMemory]
[Registering JNI native method sun.misc.Unsafe.freeMemory]
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset]
[Registering JNI native method sun.misc.Unsafe.staticFieldBase]
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized]
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset]
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale]
[Registering JNI native method sun.misc.Unsafe.addressSize]
[Registering JNI native method sun.misc.Unsafe.pageSize]
[Registering JNI native method sun.misc.Unsafe.defineClass]
[Registering JNI native method sun.misc.Unsafe.allocateInstance]
[Registering JNI native method sun.misc.Unsafe.monitorEnter]
[Registering JNI native method sun.misc.Unsafe.monitorExit]
[Registering JNI native method sun.misc.Unsafe.tryMonitorEnter]
[Registering JNI native method sun.misc.Unsafe.throwException]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapObject]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapInt]
[Registering JNI native method sun.misc.Unsafe.compareAndSwapLong]
[Registering JNI native method sun.misc.Unsafe.putOrderedObject]
[Registering JNI native method sun.misc.Unsafe.putOrderedInt]
[Registering JNI native method sun.misc.Unsafe.putOrderedLong]
[Registering JNI native method sun.misc.Unsafe.park]
[Registering JNI native method sun.misc.Unsafe.unpark]
[Registering JNI native method sun.misc.Unsafe.getLoadAverage]
[Registering JNI native method sun.misc.Unsafe.copyMemory]
[Registering JNI native method sun.misc.Unsafe.setMemory]
[Registering JNI native method sun.misc.Unsafe.defineAnonymousClass]
[Registering JNI native method sun.misc.Unsafe.shouldBeInitialized]
[Registering JNI native method sun.misc.Unsafe.loadFence]
[Registering JNI native method sun.misc.Unsafe.storeFence]
[Registering JNI native method sun.misc.Unsafe.fullFence]
[Dynamic-linking native method sun.reflect.Reflection.getCallerClass ... JNI]
[Dynamic-linking native method java.lang.Class.getPrimitiveClass ... JNI]
[Dynamic-linking native method java.lang.Float.floatToRawIntBits ... JNI]
[Dynamic-linking native method java.lang.Double.doubleToRawLongBits ... JNI]
[Dynamic-linking native method java.lang.Double.longBitsToDouble ... JNI]
[Dynamic-linking native method sun.misc.VM.initialize ... JNI]
[Dynamic-linking native method java.lang.System.initProperties ... JNI]
[Dynamic-linking native method java.lang.Runtime.maxMemory ... JNI]
[Dynamic-linking native method java.io.FileInputStream.initIDs ... JNI]
[Dynamic-linking native method java.io.FileDescriptor.initIDs ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.initIDs ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.String.intern ... JNI]
[Dynamic-linking native method java.lang.Class.isAssignableFrom ... JNI]
[Dynamic-linking native method java.lang.System.setIn0 ... JNI]
[Dynamic-linking native method java.util.concurrent.atomic.AtomicLong.VMSupportsCS8 ... JNI]
[Dynamic-linking native method java.lang.System.setOut0 ... JNI]
[Dynamic-linking native method java.lang.System.setErr0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.initIDs ... JNI]
[Dynamic-linking native method java.lang.System.mapLibraryName ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findBuiltinLib ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.getBooleanAttributes0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.canonicalize0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.load ... JNI]
[Dynamic-linking native method sun.misc.Signal.findSignal ... JNI]
[Dynamic-linking native method sun.misc.Signal.handle0 ... JNI]
[Dynamic-linking native method java.lang.Compiler.registerNatives ... JNI]
[Registering JNI native method java.lang.Compiler.compileClass]
[Registering JNI native method java.lang.Compiler.compileClasses]
[Registering JNI native method java.lang.Compiler.command]
[Registering JNI native method java.lang.Compiler.enable]
[Registering JNI native method java.lang.Compiler.disable]
[Dynamic-linking native method java.io.FileInputStream.open0 ... JNI]
[Dynamic-linking native method java.io.FileInputStream.readBytes ... JNI]
[Dynamic-linking native method java.io.FileInputStream.available ... JNI]
[Dynamic-linking native method java.lang.Object.getClass ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.newArray ... JNI]
[Dynamic-linking native method java.io.FileInputStream.close0 ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.list ... JNI]
[Dynamic-linking native method java.lang.Runtime.availableProcessors ... JNI]
[Dynamic-linking native method sun.reflect.Reflection.getClassAccessFlags ... JNI]
[Dynamic-linking native method sun.reflect.NativeConstructorAccessorImpl.newInstance0 ... JNI]
[Dynamic-linking native method sun.misc.URLClassPath.getLookupCacheURLs ... JNI]
[Dynamic-linking native method java.lang.invoke.MethodHandleNatives.registerNatives ... JNI]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.init]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.expand]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.resolve]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getConstant]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getNamedCon]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMembers]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.objectFieldOffset]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetVolatile]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldOffset]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldBase]
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMemberVMInfo]
[Registering JNI native method java.lang.invoke.MethodHandle.invoke]
[Registering JNI native method java.lang.invoke.MethodHandle.invokeExact]
[Dynamic-linking native method java.io.FileOutputStream.open0 ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.writeBytes ... JNI]
[Dynamic-linking native method java.io.FileOutputStream.close0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findLoadedClass0 ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.findBootstrapClass ... JNI]
[Dynamic-linking native method sun.reflect.NativeMethodAccessorImpl.invoke0 ... JNI]
[Dynamic-linking native method java.lang.StrictMath.log ... JNI]
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.find ... JNI]
[Dynamic-linking native method com.sun.security.auth.module.UnixSystem.getUnixInfo ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.initIDs ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.getLastModifiedTime ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.open ... JNI]
[Dynamic-linking native method sun.misc.Perf.registerNatives ... JNI]
[Registering JNI native method sun.misc.Perf.attach]
[Registering JNI native method sun.misc.Perf.detach]
[Registering JNI native method sun.misc.Perf.createLong]
[Registering JNI native method sun.misc.Perf.createByteArray]
[Registering JNI native method sun.misc.Perf.highResCounter]
[Registering JNI native method sun.misc.Perf.highResFrequency]
[Dynamic-linking native method java.util.zip.ZipFile.getTotal ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.startsWithLOC ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntry ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryFlag ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryTime ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCrc ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntrySize ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCSize ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryMethod ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getEntryBytes ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.freeEntry ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.initIDs ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.init ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.inflateBytes ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.read ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.reset ... JNI]
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI]
[Dynamic-linking native method java.lang.Class.isInstance ... JNI]
[Dynamic-linking native method java.lang.ProcessEnvironment.environ ... JNI]
[Dynamic-linking native method java.util.TimeZone.getSystemTimeZoneID ... JNI]
[Dynamic-linking native method java.util.zip.CRC32.updateBytes ... JNI]
[Dynamic-linking native method java.lang.Package.getSystemPackage0 ... JNI]
[Dynamic-linking native method java.util.jar.JarFile.getMetaInfEntryNames ... JNI]
[Dynamic-linking native method java.io.UnixFileSystem.checkAccess ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.defineClass1 ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.UcryptoProvider.loadLibraries ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.UcryptoProvider.getMechList ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.initializeLibrary ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.connect ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_Initialize ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetSlotList ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetSlotInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetTokenInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_OpenSession ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetMechanismList ... JNI]
[Dynamic-linking native method java.lang.System.identityHashCode ... JNI]
[Dynamic-linking native method sun.reflect.ConstantPool.getUTF8At0 ... JNI]
[Dynamic-linking native method java.lang.reflect.Proxy.defineClass0 ... JNI]
[Dynamic-linking native method java.lang.reflect.Array.getLength ... JNI]
[Dynamic-linking native method java.lang.StrictMath.pow ... JNI]
[Dynamic-linking native method java.util.zip.Inflater.end ... JNI]
[Dynamic-linking native method java.lang.UNIXProcess.init ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getVersion ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.init ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.lookupBuiltinType ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getTypeType ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getTypeSize ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getTypeAlign ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getSaveErrnoFunction ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.pageSize ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.mmap ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.munmap ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getArch ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.dlopen ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.dlsym ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.newCallContext ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.getCallContextRawParameterSize ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.dlerror ... JNI]
[Dynamic-linking native method java.lang.ClassLoader.resolveClass0 ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.invokeArrayO1Int32 ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.invokeArrayReturnInt ... JNI]
[Dynamic-linking native method com.kenai.jffi.Foreign.setLastError ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.getNextEntry ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_CreateObject ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeUpdate ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.init ... JNI]
[Dynamic-linking native method java.net.InetAddress.init ... JNI]
[Dynamic-linking native method java.net.InetAddressImplFactory.isIPv6Supported ... JNI]
[Dynamic-linking native method java.net.Inet4Address.init ... JNI]
[Dynamic-linking native method java.net.Inet6Address.init ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.getAll ... JNI]
[Dynamic-linking native method java.net.NetworkInterface.getMacAddr0 ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.init ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.getcwd ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.open0 ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.dup ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.fdopendir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.readdir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.closedir ... JNI]
[Dynamic-linking native method sun.nio.fs.UnixNativeDispatcher.close ... JNI]
[Dynamic-linking native method java.lang.Runtime.totalMemory ... JNI]
[Dynamic-linking native method java.lang.Runtime.freeMemory ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeDigest.nativeDigest ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetMechanismInfo ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_VerifyInit ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_Verify ... JNI]
[Dynamic-linking native method sun.security.pkcs11.wrapper.PKCS11.C_GetAttributeValue ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeKey$RSAPublic.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeInit ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeUpdate ... JNI]
[Dynamic-linking native method com.oracle.security.ucrypto.NativeRSASignature.nativeFinal ... JNI]
[Dynamic-linking native method java.util.zip.ZipFile.close ... JNI]
[Dynamic-linking native method java.lang.Throwable.getStackTraceDepth ... JNI]
[Dynamic-linking native method java.lang.Throwable.getStackTraceElement ... JNI]
[Dynamic-linking native method sun.nio.ch.IOUtil.initIDs ... JNI]
[Dynamic-linking native method sun.nio.ch.IOUtil.iovMax ... JNI]
[Dynamic-linking native method sun.nio.ch.FileChannelImpl.initIDs ... JNI]

bash-4.4$ ./jruby-9.1.15.0/bin/jruby -Xnative.enabled=false -Xnative.verbose=true -Xnative.net.protocol=true -e 'pipe=IO.popen("sleep 3"); puts pipe.pid; puts File.blockdev?("/")'
27047
NotImplementedError: block device detection unsupported or native support failed to load; see http://wiki.jruby.org/Native-Libraries
blockdev? at org/jruby/RubyFileTest.java:72

at -e:1

Hope this helps out,
Thorsten

@Tribbles01

This comment has been minimized.

Show comment
Hide comment
@Tribbles01

Tribbles01 May 18, 2018

Any updates on this?

Tribbles01 commented May 18, 2018

Any updates on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment