Christian Brüssow created KARAF-6439:
----------------------------------------

             Summary: Service fails to start under AIX with OpenJDK J9 Java 11
                 Key: KARAF-6439
                 URL: https://issues.apache.org/jira/browse/KARAF-6439
             Project: Karaf
          Issue Type: Bug
          Components: karaf
    Affects Versions: 4.2.3
         Environment: *OS:* IBM AIX 7.2

*Java:* openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.15.1, JRE 11 AIX ppc64-64-Bit 
Compressed References 20190717_292 (JIT enabled, AOT enabled)
OpenJ9 - 0f66c64
OMR - ec782f2
JCL - fa49279 based on jdk-11.0.4+11)
            Reporter: Christian Brüssow
         Attachments: NN_MyAgnet1-wrapper.conf, java-version.out, wrapper.log

Under AIX 7.2 I have used the service wrapper. It creates the correct entry in 
/etc/inittab and also creates a wrapper.conf that looks fine:
{quote}NN_MyAgent1:2:once:/data/MyService/karaf/bin/NN_MyAgent1-service start
{quote}
Starting karaf via the start-script from karaf/bin/ works as expected.

But when starting karaf via the service wrapper, the start fails with the 
following error shown in the wrapper.log (loglevel DEBUG):
{quote}DEBUG  | wrapper  | 2019/09/30 11:30:38 | Signal trapped.  Details:DEBUG 
 | wrapper  | 2019/09/30 11:30:38 | Signal trapped.  Details:DEBUG  | wrapper  
| 2019/09/30 11:30:38 |   signal number=20 (SIGCHLD), source="unknown"DEBUG  | 
wrapper  | 2019/09/30 11:30:38 | Received SIGCHLD, checking JVM process 
status.DEBUG  | wrapper  | 2019/09/30 11:30:38 | JVM process exited with a code 
of 1, setting the wrapper exit code to 1.ERROR  | wrapper  | 2019/09/30 
11:30:38 | JVM exited while loading the application.INFO   | jvm 1    | 
2019/09/30 11:30:38 | Exception in thread "main" 
java/lang/ExceptionInInitializerErrorINFO   | jvm 1    | 2019/09/30 11:30:38 | 
at java/lang/J9VMInternals.ensureError (java.base@9/Unknown 
Source:4294967295)INFO   | jvm 1    | 2019/09/30 11:30:38 | at 
java/lang/J9VMInternals.recordInitializationFailure (java.base@9/Unknown 
Source:4294967295)INFO   | jvm 1    | 2019/09/30 11:30:38 | at 
java/lang/ClassLoader.initializeClassLoaders (java.base@9/Unknown 
Source:4294967295)INFO   | jvm 1    | 2019/09/30 11:30:38 | at 
java/lang/Thread.initialize (java.base@9/Unknown Source:4294967295)INFO   | jvm 
1    | 2019/09/30 11:30:38 | at java/lang/Thread.<init> (java.base@9/Unknown 
Source:4294967295)INFO   | jvm 1    | 2019/09/30 11:30:38 | 
java/lang/RuntimeException: java.base specified more than once to 
--patch-moduleINFO   | jvm 1    | 2019/09/30 11:30:38 | at 
jdk/internal/module/ModuleBootstrap.fail (java.base@9/Unknown 
Source:4294967295)INFO   | jvm 1    | 2019/09/30 11:30:38 | at 
jdk/internal/module/ModuleBootstrap.decode (java.base@9/Unknown 
Source:4294967295)INFO   | jvm 1    | 2019/09/30 11:30:38 | at 
jdk/internal/module/ModuleBootstrap.initModulePatcher (java.base@9/Unknown 
Source:4294967295)INFO   | jvm 1    | 2019/09/30 11:30:38 | at 
jdk/internal/module/ModuleBootstrap.<clinit> (java.base@9/Unknown 
Source:4294967295)INFO   | jvm 1    | 2019/09/30 11:30:38 | at 
java/lang/ClassLoader.initializeClassLoaders (java.base@9/Unknown 
Source:4294967295)INFO   | jvm 1    | 2019/09/30 11:30:38 | at 
java/lang/Thread.initialize (java.base@9/Unknown Source:4294967295)INFO   | jvm 
1    | 2019/09/30 11:30:38 | at java/lang/Thread.<init> (java.base@9/Unknown 
Source:4294967295)DEBUG  | wrapper  | 2019/09/30 11:30:38 | JVM was only 
running for 0 seconds leading to a failed restart count of 1.
{quote}
The entries in the wrapper.conf are looking ok for me:
{quote}#********************************************************************
# Wrapper Properties
#********************************************************************
set.default.JAVA_HOME=/data/MyService/karaf/../jre
set.default.KARAF_HOME=/data/MyService/karaf
set.default.KARAF_BASE=/data/MyService/karaf
set.default.KARAF_DATA=/data/MyService/karaf/data
set.default.KARAF_ETC=/data/MyService/karaf/etc
set.default.KARAF_LOG=/data/MyService/karaf/data/log
set.default.KARAF_VERSION=4.2.3
set.default.PATH_WITH_JAVA=%JAVA_HOME%%WRAPPER_FILE_SEPARATOR%bin%WRAPPER_PATH_SEPARATOR%%PATH%.

# Include JAVA_HOME/bin in the default PATH variable
set.PATH=%PATH_WITH_JAVA%

set.JDK_JAVA_OPTIONS=--add-reads=java.xml=java.logging 
--add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED 
--patch-module 
java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar 
--patch-module 
java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-%KARAF_VERSION%.jar 
--add-opens java.base/java.security=ALL-UNNAMED --add-opens 
java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED 
--add-opens java.base/java.util=ALL-UNNAMED --add-opens 
java.naming/javax.naming.spi=ALL-UNNAMED --add-opens 
java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED 
--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED 
--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED 
--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED 
--add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED 
--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED

# Java Application
wrapper.working.dir=%KARAF_BASE%
wrapper.java.command=%JAVA_HOME%/bin/java
wrapper.java.mainclass=org.apache.karaf.wrapper.internal.service.Main
wrapper.java.classpath.1=%KARAF_BASE%/lib/boot/*.jar
wrapper.java.classpath.2=%KARAF_BASE%/lib/jdk9plus/*.jar
wrapper.java.classpath.3=%KARAF_BASE%/lib/wrapper/*.jar
wrapper.java.library.path.1=%KARAF_BASE%/lib/wrapper/

# Application Parameters. Add parameters as needed starting from 1
#wrapper.app.parameter.1=

# JVM Parameters 
# note that n is the parameter number starting from 1.
wrapper.java.additional.1=-Dkaraf.instances=%KARAF_HOME%/instances
wrapper.java.additional.2=-Dkaraf.home=%KARAF_HOME%
wrapper.java.additional.3=-Dkaraf.base=%KARAF_BASE%
wrapper.java.additional.4=-Dkaraf.data=%KARAF_DATA%
wrapper.java.additional.5=-Dkaraf.etc=%KARAF_ETC%
wrapper.java.additional.6=-Dkaraf.log=%KARAF_LOG%
wrapper.java.additional.7=-Dkaraf.restart.jvm.supported=true
wrapper.java.additional.8=-Djava.io.tmpdir=%KARAF_DATA%/tmp
wrapper.java.additional.9=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties
wrapper.java.additional.10=-Dcom.sun.management.jmxremote
wrapper.java.additional.11=-Dkaraf.startLocalConsole=false
wrapper.java.additional.12=-Dkaraf.startRemoteShell=true
{quote}
The Java used is an OpenJDK OpenJ9 Java 11 from AdoptJDK.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to