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

Ted Dunning commented on ZOOKEEPER-1061:
----------------------------------------

No unit tests are reasonably for these script-only changes.  Here is a manual
test.  Without the fix, we see this mal-behavior:

{code}
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh start
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Starting zookeeper ... 
STARTED
tdunning@ted-desk:~/Apache/zookeeper$ sudo jps
17610 QuorumPeerMain
17646 Jps
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh start
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Starting zookeeper ... 
STARTED
tdunning@ted-desk:~/Apache/zookeeper$ sudo jps
17685 Jps
17610 QuorumPeerMain
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh stop
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Stopping zookeeper ... 
kill: 160: No such process

STOPPED
tdunning@ted-desk:~/Apache/zookeeper$ sudo jps
17730 Jps
17610 QuorumPeerMain
{code}

With the fix, I get this.
{code}
tdunning@ted-desk:~/Apache/zookeeper$ patch < ZOOKEEPER-1061.patch 
patching file zkServer.sh

# first start works
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh start
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Starting zookeeper ... STARTED

# second start fails with good message
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh start
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Starting zookeeper ... already running as process 17928.

# and this is persistent behavior
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh start
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Starting zookeeper ... already running as process 17928.

# stop now works
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh stop
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Stopping zookeeper ... STOPPED

# repeated stop works correctly
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh stop
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Stopping zookeeper ... error: could not find file 
/var/zookeeper/zookeeper_server.pid

# and start works again
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh start
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Starting zookeeper ... STARTED

# but can't be repeated
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh start
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Starting zookeeper ... already running as process 18155.

# running without proper permissions gives a different error
tdunning@ted-desk:~/Apache/zookeeper$ bin/zkServer.sh start
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Starting zookeeper ... bin/zkServer.sh: 169: cannot create 
/var/zookeeper/zookeeper_server.pid: Permission denied
FAILED TO WRITE PID
tdunning@ted-desk:~/Apache/zookeeper$ sudo bin/zkServer.sh stop
JMX enabled by default
Using config: /etc/zookeeper/zoo.cfg
Stopping zookeeper ... STOPPED
{code}

> Zookeeper stop fails if start called twice
> ------------------------------------------
>
>                 Key: ZOOKEEPER-1061
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1061
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: scripts
>    Affects Versions: 3.3.2
>            Reporter: Ted Dunning
>            Assignee: Ted Dunning
>             Fix For: 3.3.3, 3.4.0
>
>         Attachments: ZOOKEEPER-1061.patch
>
>
> The zkServer.sh script doesn't check properly to see if a previously started
> server is still running.  If you call start twice, the second invocation
> will over-write the PID file with a process that then fails due to port
> occupancy.
> This means that stop will subsequently fail.
> Here is a reference that describes how init scripts should normally work:
> http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to