On 04/29/2010 11:22 AM, Chad Harrington wrote:
On Thu, Apr 29, 2010 at 8:49 AM, Patrick Hunt<ph...@apache.org>  wrote:

This is not foolproof however. We found that in general this would work,
however there were some infrequent cases where a restarted server would fail
to initialize due to the following issue:
"it is possible for the process to complete before the kernel has released
the associated network resource, and this port cannot be bound to another
process until the kernel has decided that it is done."

more detail here:

as a result we ended up changing the test code to start each test with new
quorum/election port numbers. This fixed the problem for us but would not be
a solution in your case.


I am not an expert at all on this, but I have used SO_REUSEADDR in other
situations to avoid the address in use problem.  Would that help here?

Hi Chad, seems like it should, but according to the link

"Oddly, using SO_REUSEADDR can actually lead to more difficult "address already in use" errors."

See the "strategies for avoidance" section. I'm no expert on this particular issue either, so if someone knows for sure speak up.

We already do this btw, this is from the server... (not sure if we cover all cases though):


Chad Harrington

On 04/29/2010 07:13 AM, Vishal K wrote:

Hi Ted,

We want the application that embeds the ZK server to be running even after
the ZK server is shutdown. So we don't want to restart the application.
Also, we prefer not to use zkServer.sh/zkServer.cmd because these are OS
dependent (our application will run on Win as well as Linux). Instead, we
thought that calling QuorumPeerMain.initializeAndRun() and
QuorumPeerMain.shutdown() will suffice to start and shutdown a ZK server
we won't have to worry about checking the OS.

Is there way to cleanly shutdown the ZK server (by invoking ZK server API)
when it is embedded in the application without actually restarting the
application process?
On Thu, Apr 29, 2010 at 1:54 AM, Ted Dunning<ted.dunn...@gmail.com>

  Hmmm.... it isn't quite clear what you mean by restart without

Why is killing the server and restarting it not an option?

It is common to do a rolling restart on a ZK cluster.  Just restart one
server at a time.  This is often used during system upgrades.

On Wed, Apr 28, 2010 at 8:22 PM, Vishal K<vishalm...@gmail.com>   wrote:

What is a good way to restart a ZK server (standalone and quorum)
having to restart it?

Currently, I have ZK server embedded in another java application.

Reply via email to