[
https://issues.apache.org/jira/browse/ARTEMIS-732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15510754#comment-15510754
]
ASF GitHub Bot commented on ARTEMIS-732:
----------------------------------------
Github user jbertram commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/788#discussion_r79899679
--- Diff:
artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/bin/artemis
---
@@ -105,6 +105,16 @@ if [ -z "$LOG_MANAGER" ] ; then
LOG_MANAGER="$ARTEMIS_HOME/lib/${logmanager}"
fi
+# determine which native library version to load
+LIBRARY_PATH="-Djava.library.path=\"$ARTEMIS_HOME/bin/lib"
+if [ "$(uname -m)" = "x86_64" ]; then
+ LIBRARY_PATH="$LIBRARY_PATH/linux-x86_64\""
+elif [ "$(uname -m)" = "i686" ]; then
+ LIBRARY_PATH="$LIBRARY_PATH/linux-i686\""
+else
+ LIBRARY_PATH=""
--- End diff --
We only need to set the library path for the actual broker instance, right?
We don't need to set it for the other CLI commands.
> Spurious message while loading native libraries in certain envs.
> ----------------------------------------------------------------
>
> 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 (Stretch), OpenJDK 1.8.0.102
> Reporter: Jim Gomes
> Assignee: Justin Bertram
> Priority: Blocker
> Labels: easyfix
> Fix For: 1.5.0
>
> Attachments: artemis, artemis64
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> Some systems will throw the following message when loading the wrong bit
> alignment:
> {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
> deal with it accordingly to only have the proper 32-bit or 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)