Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-14691

Cassandra 2.1 backport - The JVM should exit if jmx fails to bind

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Won't Fix
    • 2.1.x
    • Legacy/Core
    • Normal

    Description

      If you are already running a cassandra instance, but for some reason try to start another one, this happens:

      INFO  20:57:09 JNA mlockall successful
      WARN  20:57:09 JMX is not enabled to receive remote connections. Please see cassandra-env.sh for more info.
      ERROR 20:57:10 Error starting local jmx server:
      java.rmi.server.ExportException: Port already in use: 7199; nested exception is:
              java.net.BindException: Address already in use
              at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:340) ~[na:1.7.0_76]
              at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:248) ~[na:1.7.0_76]
              at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411) ~[na:1.7.0_76]
              at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147) ~[na:1.7.0_76]
              at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:207) ~[na:1.7.0_76]
              at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:122) ~[na:1.7.0_76]
              at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:98) ~[na:1.7.0_76]
              at java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:239) ~[na:1.7.0_76]
              at org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:100) [main/:na]
              at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:222) [main/:na]
              at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:564) [main/:na]
              at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:653) [main/:na]
      Caused by: java.net.BindException: Address already in use
              at java.net.PlainSocketImpl.socketBind(Native Method) ~[na:1.7.0_76]
              at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) ~[na:1.7.0_76]
              at java.net.ServerSocket.bind(ServerSocket.java:376) ~[na:1.7.0_76]
              at java.net.ServerSocket.<init>(ServerSocket.java:237) ~[na:1.7.0_76]
              at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231) ~[na:1.7.0_76]
              at org.apache.cassandra.utils.RMIServerSocketFactoryImpl.createServerSocket(RMIServerSocketFactoryImpl.java:13) ~[main/:na]
              at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:666) ~[na:1.7.0_76]
              at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:329) ~[na:1.7.0_76]
              ... 11 common frames omitted
      

      However the startup continues, and ends up replaying commitlogs, which is probably not a good thing.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              tsteinmaurer Thomas Steinmaurer
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: