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

Consultant Leon edited comment on AMQ-8471 at 9/17/22 12:09 AM:
----------------------------------------------------------------

I run into the same problem, just today upgrading from activemq 5.16.0 -> 
5.16.5 on good old solaris 10 ...

 

Firstly I couldn't start activemq:
 * first line reads #!/bin/sh which on solaris means the script is executed as 
bourne shell , not bash.
 * then I got error /WEB-INF/webconsole-embedded.xml FileNotFound -> it's 
caused by $ACTIVEMQ_HOME pointing to a symlink rather than the physical 
directory (this worked fine before, I think there's another issue open, btw 
this is also an issue on windows and any linux I've tried it on)
 * and now I found this issue trying to stop failing...

 

uname -a :

SunOS server1 5.10 Generic_150401-11 i86pc i386 i86pc

 

Don't really understand who still uses ` backticks? $( ... ) seems much more 
robust and elegant?

 

Why log that the pid file is outdated while the process id is still running - 
this can be made much more robust in my view.

The following seems more robust and will probably work cross platform:

$ if [ "$(ps -p 13143 -o fname=)" = "java" ]; then echo kill the process; else 
echo its not java; fi
kill the process

 $ ps -p 13143 -o fname=
java

 

(the '=' after fname suppresses the headers 
[https://unix.stackexchange.com/questions/232708/disabling-column-names-in-ps-output]
 )

 

the option -e seems unnecessary as well, why grep all processes and not just 
the user's processes.

 

 local pidfile="${1}"

    if [ -f $pidfile ]; then

 

I'd use quotes around $pidfile in case there's spaces in the path (the old 
checkRunning() code did that correctly.

Why not write a new method to check for the wrapper script (pidfile.stop) and 
leave the original tested and proven method as is rather than combining the 2 
needs and breaking good old proven methods?

 

 


was (Author: consultantleon):
I run into the same problem, just today upgrading from activemq 5.16.0 -> 5.16.5

 

Firstly I couldn't start activemq:
 * first line reads #!/bin/sh which on solaris means the script is executed as 
bourne shell , not bash.
 * then I got error /WEB-INF/webconsole-embedded.xml FileNotFound -> it's 
caused by $ACTIVEMQ_HOME pointing to a symlink rather than the physical 
directory (this worked fine before, I think there's another issue open)
 * and now I found this issue trying to stop failing...

 

uname -a :

SunOS server1 5.10 Generic_150401-11 i86pc i386 i86pc

 

Don't really understand who still uses ` backticks? $( ... ) seems much more 
robust and elegant?

 

Why log that the pid file is outdated while the process id is still running - 
this can be made much more robust in my view.

 

 

 

 

> activemq stop command fails with no or outdated process id
> ----------------------------------------------------------
>
>                 Key: AMQ-8471
>                 URL: https://issues.apache.org/jira/browse/AMQ-8471
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.16.2
>            Reporter: shrihari
>            Assignee: Jean-Baptiste Onofré
>            Priority: Major
>         Attachments: image-2022-02-07-10-21-19-913.png, 
> image-2022-02-07-10-21-39-782.png
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> In some AIX/Linux environments, the activemq stop command fails with the 
> below error. 
> bash-4.4# ./activemq stop
> INFO: Loading '/AMQ/message-broker/bin/env'
> INFO: Using java '/usr/java8_64/bin/java'
> ERROR: No or outdated process id in '/AMQ/message-broker//data/activemq.pid'
> INFO: Removing /AMQ/message-broker//data/activemq.pid
>  
> The fix provided in https://issues.apache.org/jira/browse/AMQ-8425 doesn't 
> work in such environments as the issue is not due to the user/terminal 
> instance.
>  
> Workaround: 
> Some AIX/linux environments are highly sensitive to the *acute/backquot* 
> *character `* 
> Backquot character reference : 
> [https://www.computerhope.com/jargon/b/backquot.htm]
> Update the file <AMQ_HOME>/message-broker/bin/activemq as below :
> Change the line by removing backquot character :
> RET="`ps -eo "pid,args" | grep "\s*$activemq_pid\s.java"`" to RET="ps -eo 
> "pid,args" | grep "\s$activemq_pid\s.*java""
> This will be inside checkRunning() function.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to