[ https://issues.apache.org/jira/browse/CASSANDRA-6618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13881517#comment-13881517 ]
Ravi Prasad edited comment on CASSANDRA-6618 at 1/24/14 11:04 PM: ------------------------------------------------------------------ if the authenticator is not Saslaware, the run() returns without starting the nativeServer and we still set isRunning to true, in that case: https://github.com/apache/cassandra/blob/cassandra-2.0/src/java/org/apache/cassandra/transport/Server.java#L133 was (Author: ravilr): if the authenticator is not Saslaware, the run() returns and we stills set isRunning to true. https://github.com/apache/cassandra/blob/cassandra-2.0/src/java/org/apache/cassandra/transport/Server.java#L133 > NullPointerException while stopping/draining if native transport wasn't > started > ------------------------------------------------------------------------------- > > Key: CASSANDRA-6618 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6618 > Project: Cassandra > Issue Type: Bug > Environment: RHEL6, cassandra-2.0.4 > Reporter: Ravi Prasad > Priority: Minor > Attachments: 6618-2.0.txt > > > if using a custom Authenticator, native transport server wouldn't be started. > ERROR [main] 2014-01-24 03:04:40,876 Server.java (line 131) Not starting > native transport as the configured IAuthenticator is not capable of SASL > authentication > But, while stopping cassandra/'nodetool drain', this results in > NullpointerException being thrown currently: > Exception in thread "main" java.lang.NullPointerException > at org.apache.cassandra.transport.Server.close(Server.java:177) > at org.apache.cassandra.transport.Server.stop(Server.java:116) > at > org.apache.cassandra.service.StorageService.stopNativeTransport(StorageService.java:349) > at > org.apache.cassandra.service.StorageService.shutdownClientServers(StorageService.java:364) > at > org.apache.cassandra.service.StorageService.drain(StorageService.java:3288) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:111) > at > com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:45) > at > com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:235) > at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) > at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) > at > com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:792) > at > javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1486) > at > javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:96) > at > javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1327) > at > javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1419) > at > javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:847) > at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) > at sun.rmi.transport.Transport$1.run(Transport.java:177) > at sun.rmi.transport.Transport$1.run(Transport.java:174) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:173) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:722) -- This message was sent by Atlassian JIRA (v6.1.5#6160)