[ 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