You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Jim Gomes (JIRA)" <ji...@apache.org> on 2016/09/13 22:10:20 UTC
[jira] [Created] (ARTEMIS-732) Need a 64-bit specific launching
script
Jim Gomes created ARTEMIS-732:
---------------------------------
Summary: Need a 64-bit specific launching script
Key: ARTEMIS-732
URL: https://issues.apache.org/jira/browse/ARTEMIS-732
Project: ActiveMQ Artemis
Issue Type: Bug
Components: Broker
Affects Versions: 1.4.0
Environment: Debian Linux 64-bit, OpenJDK 1.8.0.102
Reporter: Jim Gomes
Fix For: 1.5.0
The artemis launching script located in the bin folder needs to be split into two separate scripts: one for 32-bit, and one for 64-bit. The current script attempts (but fails) to be run-time adaptive. However, when running on a 64-bit environment, the following error is always displayed when it is run:
{noformat}
OpenJDK 64-Bit Server VM warning: You have loaded library
/home/username/apache-artemis-1.4.0/bin/lib/linux-i686/libartemis-native-32.so
which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'
{noformat}
The problem is with the {{exec}} command-line, specifically the {{-Djava.library.path}} parameter. It combines both the 32-bit library path and the 64-bit library path, but it doesn't actually work. The script should be split into two separate scripts, one for 32-bit and one for 64-bit. All that is necessary is to modify the library path to be platform specific, and the error condition is resolved. I have attached modified script files (*{{artemis}}* and *{{artemis64}}*) that can be used depending on the run-time environment. Here are the key differences between the two scripts:
{code:title=32-bit version}
exec "$JAVACMD" $JAVA_ARGS $ARTEMIS_CLUSTER_PROPS \
-classpath "$CLASSPATH" \
-Dartemis.home="$ARTEMIS_HOME" \
-Djava.library.path="$ARTEMIS_HOME/bin/lib/linux-i686" \
$DEBUG_ARGS \
org.apache.activemq.artemis.boot.Artemis "$@"}}
{code}
{code:title=64-bit version}
exec "$JAVACMD" $JAVA_ARGS $ARTEMIS_CLUSTER_PROPS \
-classpath "$CLASSPATH" \
-Dartemis.home="$ARTEMIS_HOME" \
-Djava.library.path="$ARTEMIS_HOME/bin/lib/linux-x86_64" \
$DEBUG_ARGS \
org.apache.activemq.artemis.boot.Artemis "$@"
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)