[
https://issues.apache.org/jira/browse/CASSANDRA-5467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sylvain Lebresne updated CASSANDRA-5467:
----------------------------------------
Attachment: 5467.txt
That's definitively not unreasonable. Initially, isRunning was set first so we
don't start the server twice if the {{start()}} method was called twice. But
tbh it's not really useful a protection so attaching a trivial patch that just
move setting isRunning once the server is indeed started.
> isRunning flag set prematurely in org.apache.cassandra.transport.Server
> -----------------------------------------------------------------------
>
> Key: CASSANDRA-5467
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5467
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.2.2
> Reporter: John Sanda
> Assignee: Sylvain Lebresne
> Priority: Minor
> Labels: jmx, server
> Attachments: 5467.txt
>
>
> In org.apache.cassandra.transport.Server, the start() method sets the
> isRunning flag before calling the run() method. In the event of an
> initialization error like a port conflict an exception will be thrown at line
> 136 which is,
> Channel channel = bootstrap.bind(socket);
> It seems like it might make more sense to set the isRunning flag after
> binding to the socket. I have a tool that deploys a node and then verifies it
> is ready to receive CQL requests. I do this via JMX. Unless I use a delay
> before making that check, the JMX call will return true even though there is
> a port conflict.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira