RE: Can't start karaf using the wrapper on AIX 7.2

2021-05-06 Thread Frank 'S Jegers
Hi,

It may work without the --patch-module options, but I assume those options were 
added for a reason ?

It works if in karaf-wrapper.conf the option set.JDK_JAVA_OPTIONS= is removed. 
I added the arguments as JVM Parameters, like this :
wrapper.java.additional.1=--add-reads=java.xml=java.logging
wrapper.java.additional.2=--add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED
wrapper.java.additional.3=--patch-module=java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
wrapper.java.additional.4=--patch-module=java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-%KARAF_VERSION%.jar
wrapper.java.additional.5=--add-opens=java.base/java.security=ALL-UNNAMED
wrapper.java.additional.6=--add-opens=java.base/java.net=ALL-UNNAMED
wrapper.java.additional.7=--add-opens=java.base/java.lang=ALL-UNNAMED
wrapper.java.additional.8=--add-opens=java.base/java.util=ALL-UNNAMED
wrapper.java.additional.9=--add-opens=java.naming/javax.naming.spi=ALL-UNNAMED
wrapper.java.additional.10=--add-opens=java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED
wrapper.java.additional.11=--add-exports=java.base/sun.net.www.protocol.file=ALL-UNNAMED
wrapper.java.additional.12=--add-exports=java.base/sun.net.www.protocol.ftp=ALL-UNNAMED
wrapper.java.additional.13=--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED
wrapper.java.additional.14=--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED
wrapper.java.additional.15=--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED
wrapper.java.additional.16=--add-exports=java.base/sun.net.www.content.text=ALL-UNNAMED
wrapper.java.additional.17=--add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED
wrapper.java.additional.18=--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED

wrapper.java.additional.19=-Dkaraf.instances=%KARAF_HOME%/instances
wrapper.java.additional.20=-Dkaraf.home=%KARAF_HOME%
wrapper.java.additional.21=-Dkaraf.base=%KARAF_BASE%
wrapper.java.additional.22=-Dkaraf.data=%KARAF_DATA%
wrapper.java.additional.23=-Dkaraf.etc=%KARAF_ETC%
wrapper.java.additional.24=-Dkaraf.log=%KARAF_LOG%
wrapper.java.additional.25=-Dkaraf.restart.jvm.supported=true
wrapper.java.additional.26=-Djava.io.tmpdir=%KARAF_DATA%/tmp
wrapper.java.additional.27=-Djava.util.logging.config.file=%KARAF_ETC%/java.util.logging.properties
wrapper.java.additional.28=-Dcom.sun.management.jmxremote
wrapper.java.additional.29=-Dkaraf.startLocalConsole=false
wrapper.java.additional.30=-Dkaraf.startRemoteShell=true

Note that you can't set
wrapper.java.additional.3=--patch-module 
java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
So with a space between patch-module and java.base, because the wrapper will 
treat the entire value as 1 argument.
Nor can you set
wrapper.java.additional.3=--patch-module
wrapper.java.additional.4=java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar
Because then the jvm will complain that the option "java.base" is invalid

You must replace the space with a "=" :
wrapper.java.additional.3=--patch-module=java.base=lib/endorsed/org.apache.karaf.specs.locator-%KARAF_VERSION%.jar

I filed a bug report in the AdoptOpenJDK Github : 
https://github.com/adoptium/adoptium-support/issues/303
We'll see if anyone picks this up.

Do you want me to add this information to the KARAF-6439 issue ?

Regards,
Frank ‘S Jegers

From: Jean-Baptiste Onofre [mailto:j...@nanthrax.net]
Sent: donderdag 6 mei 2021 6:16
To: user
Subject: Re: Can't start karaf using the wrapper on AIX 7.2

Hi,

I agree: it seems the patch-module option is not "AIX compliant" ;)

Does it work without patch module option ?

Regards
JB


Le 5 mai 2021 à 21:11, Frank 'S Jegers 
mailto:frank.sjeg...@ikan.be>> a écrit :

Hi,

I tried with a freshly downloaded Karaf 4.2.11, generated the wrapper files by 
executing :
export JAVA_HOME=/opt/ikan/java/jdk-11.0.11+9
karaf/bin/shell wrapper:install

Also tried starting Karaf first, then, from the karaf console, did a
feature install wrapper
and
wrapper:install

The JAVA_HOME is set in the karaf-wrapper.conf :
set.default.JAVA_HOME=/opt/ikan/java/jdk-11.0.11+9

But it still wouldn't start. Turns out there was a wrapper.log after all 
(wasn't looking in the right place).

This is the relevant content :

ERROR  | wrapper  | 2021/05/05 19:21:12 | JVM exited while loading the 
application.
INFO   | jvm 5| 2021/05/05 19:21:12 | NOTE: Picked up 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-4.2.11.jar 
--patch-module java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.11.jar 
--add-opens java.base/java.security=ALL-UNNAMED --add-opens 
java.base/java.net<http://java.net/>=ALL-UNNAMED --add-opens 
java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED 
--add-opens java.namin

RE: Can't start karaf using the wrapper on AIX 7.2

2021-05-05 Thread Frank 'S Jegers
Hi,

I tried with a freshly downloaded Karaf 4.2.11, generated the wrapper files by 
executing :
export JAVA_HOME=/opt/ikan/java/jdk-11.0.11+9
karaf/bin/shell wrapper:install

Also tried starting Karaf first, then, from the karaf console, did a
feature install wrapper
and
wrapper:install

The JAVA_HOME is set in the karaf-wrapper.conf :
set.default.JAVA_HOME=/opt/ikan/java/jdk-11.0.11+9

But it still wouldn't start. Turns out there was a wrapper.log after all 
(wasn't looking in the right place).

This is the relevant content :

ERROR  | wrapper  | 2021/05/05 19:21:12 | JVM exited while loading the 
application.
INFO   | jvm 5| 2021/05/05 19:21:12 | NOTE: Picked up 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-4.2.11.jar 
--patch-module java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.11.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.file=ALL-UNNAMED 
--add-exports=java.base/sun.net.www.protocol.ftp=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=java.base/sun.net.www.content.text=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
INFO   | jvm 5| 2021/05/05 19:21:12 | NOTE: Picked up 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-4.2.11.jar 
--patch-module java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.11.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.file=ALL-UNNAMED 
--add-exports=java.base/sun.net.www.protocol.ftp=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=java.base/sun.net.www.content.text=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
INFO   | jvm 5| 2021/05/05 19:21:12 | Error occurred during initialization 
of VM
INFO   | jvm 5| 2021/05/05 19:21:12 | Cannot specify java.base more than 
once to --patch-module

It looks like I'm experiencing issue KARAF-6439 
(https://issues.apache.org/jira/browse/KARAF-6439 )

After some testing it appears that this problem is caused by the handling of 
the OpenJDK Java versions for AIX of the JDK_JAVA_OPTIONS environment variable :
If you set
export JDK_JAVA_OPTIONS="--patch-module java.base=dummy.jar"
and then run any Java class, like :
java Dummy
it will fail to launch a JVM, complaining that "java.base specified more than 
once to --patch-module"

I tested with AdoptOpenJDK-11.0.11+9 (both Hotspot and OpenJ9) and with IBM jdk 
11 (Eclipse OpenJ9 VM 11.0.10.0-IBM (build openj9-0.24.0, JRE 11 AIX 
ppc64-64-Bit Compressed References 20210202_3 (JIT enabled, AOT enabled)). All 
produce similar errors for this case.

I didn't find an Oracle Java for the AIX platform, nor a compatible jdk from 
Amazon Coretto or Azul Zulu.

The only option I see for the moment is removing the use of the 
JDK_JAVA_OPTIONS environment variable, and putting all those options as 
wrapper.java.additional.xx JVM parameters. I'll test that, unless anyone has 
any better ideas ?

Any input greatly appreciated.

Grtz,
Frank 'S Jegers.

From: Jean-Baptiste Onofre [mailto:j...@nanthrax.net]
Sent: woensdag 5 mei 2021 16:09
To: user
Subject: Re: Can't start karaf using the wrapper on AIX 7.2

Hi Frank

Did you try to install wrapper once karaf is started ?
Do you have the JDK define in wrapper.conf ?

Regards
JB


Le 5 mai 2021 à 15:49, Frank 'S Jegers 
mailto:frank.sjeg...@ikan.be>> a écrit :

Hi,

I'm trying to start karaf using the wrapper script on AIX 7.2.
Generated the wrapper files by executing :
karaf/bin/shell wrapper:install -n almagent59 -d "IKAN\ ALM\ 5.9\ Agent" -D 
"IKAN\ ALM\ 5.9\ Agent\ Daemon"

Then created a link to the sysV script in /etc/rc.d/init.d/
sudo ln -s /opt/ikan/almagent59/daemons/agent/karaf/bin/almagent59-servic

Can't start karaf using the wrapper on AIX 7.2

2021-05-05 Thread Frank 'S Jegers
Hi,

I'm trying to start karaf using the wrapper script on AIX 7.2.
Generated the wrapper files by executing :
karaf/bin/shell wrapper:install -n almagent59 -d "IKAN\ ALM\ 5.9\ Agent" -D 
"IKAN\ ALM\ 5.9\ Agent\ Daemon"

Then created a link to the sysV script in /etc/rc.d/init.d/
sudo ln -s /opt/ikan/almagent59/daemons/agent/karaf/bin/almagent59-service 
/etc/rc.d/init.d/

When I run it with "sudo /etc/rc.d/init.d/almagent59-service start", I get the 
output :
Starting IKAN ALM 5.9 Agent...

and then nothing : no Java process, no wrapper.log, no lock file, no karaf.pid 
file

In karaf/etc/almagent59-wrapper.conf, I set "wrapper.console.loglevel=DEBUG"
Then I get the additional output :
wrapper  | Working directory set to: /opt/ikan/almagent59/daemons/agent/karaf
wrapper  | Spawning intermediate process...

I edited the almagent59-service, and echoed the command that gets executed, 
which is :
/opt/ikan/almagent59/daemons/agent/karaf/bin/almagent59-wrapper 
/opt/ikan/almagent59/daemons/agent/karaf/etc/almagent59-wrapper.conf 
wrapper.syslog.ident=almagent59 
wrapper.pidfile=/opt/ikan/almagent59/daemons/agent/karaf/almagent59.wrapper.pid 
wrapper.daemonize=TRUE

When I launch Karaf using karaf/bin/karaf, then Karaf starts ok and our 
application seems to function.

I've followed similar steps as above to launch karaf using the wrapper script 
on several Debian and Redhat based Linuxes, using both the sysV script and the 
systemd unit file, and managed to get it working there. But not so on AIX.

Any ideas ?

Karaf version : 4.2.8

Java version :
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)

AIX version : AIX 7.2 7200-03-02-1846

Thank you,
Frank 'S Jegers