[
https://issues.apache.org/jira/browse/CASSANDRA-12074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15346704#comment-15346704
]
Tyler Hobbs commented on CASSANDRA-12074:
-----------------------------------------
Awesome, it looks like even with an older java 8 (1.8.0u20), the error message
is good:
{noformat}
ERROR 16:26:46 Port already in use: 7199; nested exception is:
java.net.BindException: Address already in use
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method) ~[na:1.8.0_20]
at
java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:382)
~[na:1.8.0_20]
at java.net.ServerSocket.bind(ServerSocket.java:375) ~[na:1.8.0_20]
at java.net.ServerSocket.<init>(ServerSocket.java:237) ~[na:1.8.0_20]
at
javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231)
~[na:1.8.0_20]
at
org.apache.cassandra.utils.RMIServerSocketFactoryImpl.createServerSocket(RMIServerSocketFactoryImpl.java:41)
~[main/:na]
at
sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:666)
~[na:1.8.0_20]
at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:319)
~[na:1.8.0_20]
at
sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:238)
~[na:1.8.0_20]
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411)
~[na:1.8.0_20]
at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147)
~[na:1.8.0_20]
at
sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:208)
~[na:1.8.0_20]
at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:152)
~[na:1.8.0_20]
at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:112)
~[na:1.8.0_20]
at
java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:239)
~[na:1.8.0_20]
at
org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:80)
~[main/:na]
at
org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:137)
[main/:na]
at
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:212)
[main/:na]
at
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:587)
[main/:na]
at
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:716)
[main/:na]
{noformat}
So, I've pushed another commit to the branch that simply removes the
pre-startup check and started a new dtest run. Thanks to [~cnlwsu] for
mentioning CASSANDRA-10091 to me.
> Faster check for open JMX port on startup
> -----------------------------------------
>
> Key: CASSANDRA-12074
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12074
> Project: Cassandra
> Issue Type: Improvement
> Components: Lifecycle
> Reporter: Tyler Hobbs
> Assignee: Tyler Hobbs
> Priority: Minor
> Fix For: 3.x
>
>
> Since CASSANDRA-7254, we check whether the JMX port is available before
> starting Cassandra in order to provide a better error message when another
> Cassandra process is already running. The current check starts a Java
> process to do this, which takes ~3 seconds. Instead, we can use {{lsof}},
> which is basically instantaneous.
> By my estimate, this will shave about 40 minutes off our dtest runs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)