Re: run-program issues with OpenJDK 11

Eric Timmons <[email protected]> Wed, 01 Jul 2020 13:27:13 -0400
Newsgroups gmane.editors.j.devel
Message-ID <[email protected]>
Mark Evenson <[email protected]> writes:

> Hmmm.  I can’t seem to confirm under abcl-bin-1.7.0/openjdk11/linux.

I'll be honest, I thought I was going crazy at first! It seemed weird
that things like this would break things like this between versions.
I'd love it if there's some other explanation!

[...]

> What are the values returned for LISP-IMPLEMENTATION-VERSION where you
> encountering the error?
>
> You aren’t trying to get a java.lang.UNIXProcess under Windows by any chance?

Nope, I'm running on Gentoo with kernel 5.4.45 and in Docker containers
running on that computer. I've attached a tarball containing the Docker
build context and some scripts I used to test this. The build-images
script will build Docker images using the ABCL 1.7.0 jar running with
Buster's default JRE (11), Stretch's default JRE (8), the JRE in the
openjdk:11-buster image, and the JRE in the openjdk:8-buster image. The
test-run-program script will try to start a child process using each of
the images.

The first value of LISP-IMPLEMENTATION-VERSION is always "1.7.0" and the
third is always "amd64-Linux-5.4.45-gentoo".

I get the errors when the second value is one of:

+ "OpenJDK_64-Bit_Server_VM-Debian-11.0.7+10-post-Debian-3deb10u1" (docker label debian-buster)
+ "OpenJDK_64-Bit_Server_VM-Oracle_Corporation-11.0.7+10" (docker label opendjk-11-buster)
+ "OpenJDK_64-Bit_Server_VM-AdoptOpenJDK-11.0.7+10" (native)

I don't get errors when the second value is one of:

+ "OpenJDK_64-Bit_Server_VM-Oracle_Corporation-1.8.0_252-8u252-b09-1~deb9u1-b09" (docker label debian-stretch)
+ "OpenJDK_64-Bit_Server_VM-Oracle_Corporation-1.8.0_252-b09" (docker label openjdk-8-buster)
+ "OpenJDK_64-Bit_Server_VM-AdoptOpenJDK-1.8.0_252-b09" (native)

I've also attached the full output of running the test-run-program
script from the tarball (after build-images has already been run).

-Eric
abcl-run-program-test.tar.gz (application/octet-stream, 1.1 KB) - not displayed
output-of-test-run-program.txt (text/plain, 11.2 KB)
###############################################################################
# Running test on debian-buster
###############################################################################
Armed Bear Common Lisp 1.7.0
Java 11.0.7 Debian
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.211 seconds.
Startup completed in 1.098 seconds.

("1.7.0" "OpenJDK_64-Bit_Server_VM-Debian-11.0.7+10-post-Debian-3deb10u1" "amd64-Linux-5.4.45-gentoo") 
org.armedbear.lisp.Interpreter$UnhandledCondition: Unhandled lisp condition: Class not found: java.lang.UNIXProcess
	at org.armedbear.lisp.Interpreter$1.execute(Interpreter.java:569)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:832)
	at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2797)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:814)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:832)
	at org.armedbear.lisp.debug_6.execute(debug.lisp:105)
	at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:121)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:826)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:851)
	at org.armedbear.lisp.debug_7.execute(debug.lisp:114)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:803)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:814)
	at org.armedbear.lisp.signal_2.execute(signal.lisp:63)
	at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:98)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:803)
	at org.armedbear.lisp.Lisp.error(Lisp.java:383)
	at org.armedbear.lisp.Java.classForName(Java.java:1358)
	at org.armedbear.lisp.Java.javaClass(Java.java:1391)
	at org.armedbear.lisp.Java$pf_jclass.execute(Java.java:153)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:814)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:575)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Stream.readSharpDot(Stream.java:922)
	at org.armedbear.lisp.FaslReader$7.execute(FaslReader.java:130)
	at org.armedbear.lisp.Stream.readDispatchChar(Stream.java:814)
	at org.armedbear.lisp.FaslReader$4.execute(FaslReader.java:91)
	at org.armedbear.lisp.Stream.processChar(Stream.java:589)
	at org.armedbear.lisp.Stream.readPreservingWhitespace(Stream.java:558)
	at org.armedbear.lisp.Stream.readPreservingWhitespace(Stream.java:567)
	at org.armedbear.lisp.Stream.read(Stream.java:501)
	at org.armedbear.lisp.Lisp.readObjectFromReader(Lisp.java:1328)
	at org.armedbear.lisp.Lisp.readObjectFromString(Lisp.java:1305)
	at org.armedbear.lisp.run_program_60.<clinit>(run-program.lisp)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/java.lang.Class.newInstance(Class.java:584)
	at org.armedbear.lisp.FaslClassLoader.loadFunction(FaslClassLoader.java:130)
	at org.armedbear.lisp.FaslClassLoader$pf_get_fasl_function.execute(FaslClassLoader.java:165)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:832)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:582)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:577)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Lisp.progn(Lisp.java:709)
	at org.armedbear.lisp.SpecialOperators$sf_progn.execute(SpecialOperators.java:273)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:530)
	at org.armedbear.lisp.Load.faslLoadStream(Load.java:667)
	at org.armedbear.lisp.Load$init_fasl.execute(Load.java:457)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:832)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:582)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Load.loadStream(Load.java:629)
	at org.armedbear.lisp.Load.loadFileFromStream(Load.java:597)
	at org.armedbear.lisp.Load.loadFileFromStream(Load.java:477)
	at org.armedbear.lisp.Load.loadSystemFile(Load.java:375)
	at org.armedbear.lisp.Load.loadSystemFile(Load.java:255)
	at org.armedbear.lisp.Autoload.effectiveLoad(Autoload.java:110)
	at org.armedbear.lisp.Autoload.load(Autoload.java:147)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:537)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:570)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Interpreter.evaluate(Interpreter.java:614)
	at org.armedbear.lisp.Interpreter.postprocessCommandLineArguments(Interpreter.java:303)
	at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:110)
	at org.armedbear.lisp.Main$1.run(Main.java:46)
	at java.base/java.lang.Thread.run(Thread.java:834)

Caught ERROR while processing --eval option "(print (sys:run-program "ls" nil))":
  Compiled function can't be loaded: org.armedbear.lisp.run_program_60 from org.armedbear.lisp.Pathname@6b38bb10

###############################################################################
# Running test on debian-stretch
###############################################################################
Armed Bear Common Lisp 1.7.0
Java 1.8.0_252 Oracle Corporation
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.254 seconds.
Startup completed in 1.199 seconds.

("1.7.0" "OpenJDK_64-Bit_Server_VM-Oracle_Corporation-1.8.0_252-8u252-b09-1~deb9u1-b09" "amd64-Linux-5.4.45-gentoo") 

#S(SYSTEM:PROCESS :JPROCESS #<java.lang.UNIXProcess java.lang.UNIXProcess@381c96f5 {690E5CE5}> :%INPUT #S(SYSTEM::SYSTEM-STREAM) :%OUTPUT #S(SYSTEM::SYSTEM-STREAM) :%ERROR #S(SYSTEM::SYSTEM-STREAM)) 
###############################################################################
# Running test on openjdk-11-buster
###############################################################################
Armed Bear Common Lisp 1.7.0
Java 11.0.7 Oracle Corporation
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.218 seconds.
Startup completed in 1.209 seconds.

("1.7.0" "OpenJDK_64-Bit_Server_VM-Oracle_Corporation-11.0.7+10" "amd64-Linux-5.4.45-gentoo") 
org.armedbear.lisp.Interpreter$UnhandledCondition: Unhandled lisp condition: Class not found: java.lang.UNIXProcess
	at org.armedbear.lisp.Interpreter$1.execute(Interpreter.java:569)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:832)
	at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2797)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:814)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:832)
	at org.armedbear.lisp.debug_6.execute(debug.lisp:105)
	at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:121)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:826)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:851)
	at org.armedbear.lisp.debug_7.execute(debug.lisp:114)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:803)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:814)
	at org.armedbear.lisp.signal_2.execute(signal.lisp:63)
	at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:98)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:803)
	at org.armedbear.lisp.Lisp.error(Lisp.java:383)
	at org.armedbear.lisp.Java.classForName(Java.java:1358)
	at org.armedbear.lisp.Java.javaClass(Java.java:1391)
	at org.armedbear.lisp.Java$pf_jclass.execute(Java.java:153)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:814)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:575)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Stream.readSharpDot(Stream.java:922)
	at org.armedbear.lisp.FaslReader$7.execute(FaslReader.java:130)
	at org.armedbear.lisp.Stream.readDispatchChar(Stream.java:814)
	at org.armedbear.lisp.FaslReader$4.execute(FaslReader.java:91)
	at org.armedbear.lisp.Stream.processChar(Stream.java:589)
	at org.armedbear.lisp.Stream.readPreservingWhitespace(Stream.java:558)
	at org.armedbear.lisp.Stream.readPreservingWhitespace(Stream.java:567)
	at org.armedbear.lisp.Stream.read(Stream.java:501)
	at org.armedbear.lisp.Lisp.readObjectFromReader(Lisp.java:1328)
	at org.armedbear.lisp.Lisp.readObjectFromString(Lisp.java:1305)
	at org.armedbear.lisp.run_program_60.<clinit>(run-program.lisp)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/java.lang.Class.newInstance(Class.java:584)
	at org.armedbear.lisp.FaslClassLoader.loadFunction(FaslClassLoader.java:130)
	at org.armedbear.lisp.FaslClassLoader$pf_get_fasl_function.execute(FaslClassLoader.java:165)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:832)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:582)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:577)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Lisp.progn(Lisp.java:709)
	at org.armedbear.lisp.SpecialOperators$sf_progn.execute(SpecialOperators.java:273)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:530)
	at org.armedbear.lisp.Load.faslLoadStream(Load.java:667)
	at org.armedbear.lisp.Load$init_fasl.execute(Load.java:457)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:832)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:582)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Load.loadStream(Load.java:629)
	at org.armedbear.lisp.Load.loadFileFromStream(Load.java:597)
	at org.armedbear.lisp.Load.loadFileFromStream(Load.java:477)
	at org.armedbear.lisp.Load.loadSystemFile(Load.java:375)
	at org.armedbear.lisp.Load.loadSystemFile(Load.java:255)
	at org.armedbear.lisp.Autoload.effectiveLoad(Autoload.java:110)
	at org.armedbear.lisp.Autoload.load(Autoload.java:147)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:537)
	at org.armedbear.lisp.Lisp.evalCall(Lisp.java:570)
	at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
	at org.armedbear.lisp.Interpreter.evaluate(Interpreter.java:614)
	at org.armedbear.lisp.Interpreter.postprocessCommandLineArguments(Interpreter.java:303)
	at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:110)
	at org.armedbear.lisp.Main$1.run(Main.java:46)
	at java.base/java.lang.Thread.run(Thread.java:834)

Caught ERROR while processing --eval option "(print (sys:run-program "ls" nil))":
  Compiled function can't be loaded: org.armedbear.lisp.run_program_60 from org.armedbear.lisp.Pathname@706df0f0

###############################################################################
# Running test on openjdk-8-buster
###############################################################################
Armed Bear Common Lisp 1.7.0
Java 1.8.0_252 Oracle Corporation
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.259 seconds.
Startup completed in 1.124 seconds.

("1.7.0" "OpenJDK_64-Bit_Server_VM-Oracle_Corporation-1.8.0_252-b09" "amd64-Linux-5.4.45-gentoo") 

#S(SYSTEM:PROCESS :JPROCESS #<java.lang.UNIXProcess java.lang.UNIXProcess@3ab95c2d {588DCBFE}> :%INPUT #S(SYSTEM::SYSTEM-STREAM) :%OUTPUT #S(SYSTEM::SYSTEM-STREAM) :%ERROR #S(SYSTEM::SYSTEM-STREAM))