[ 
https://issues.apache.org/jira/browse/ARTEMIS-732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15511066#comment-15511066
 ] 

clebert suconic commented on ARTEMIS-732:
-----------------------------------------

I had not long ago changed how we loaded the libraries. First loading 64 and 
then 32 bits.

You probably didn't have libaio installed what made the first 64 bits to fail, 
where it tried 32 bits and hit the issue. If you had libaio installed you 
wouldn't see this.

> 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)

Reply via email to