mck created CASSANDRA-11381:
-------------------------------
Summary: Node running with join_ring=false and authentication can
not serve requests
Key: CASSANDRA-11381
URL: https://issues.apache.org/jira/browse/CASSANDRA-11381
Project: Cassandra
Issue Type: Bug
Reporter: mck
Assignee: mck
Starting up a node with {{-Dcassandra.join_ring=false}} in a cluster that has
authentication configured, eg PasswordAuthenticator, won't be able to serve
requests. This is because {{Auth.setup()}} never gets called during the startup.
Without {{Auth.setup()}} having been called in {{StorageService}} clients
connecting to the node fail with the node throwing
{noformat}
java.lang.NullPointerException
at
org.apache.cassandra.auth.PasswordAuthenticator.authenticate(PasswordAuthenticator.java:119)
at
org.apache.cassandra.thrift.CassandraServer.login(CassandraServer.java:1471)
at
org.apache.cassandra.thrift.Cassandra$Processor$login.getResult(Cassandra.java:3505)
at
org.apache.cassandra.thrift.Cassandra$Processor$login.getResult(Cassandra.java:3489)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at com.thinkaurelius.thrift.Message.invoke(Message.java:314)
at com.thinkaurelius.thrift.Message$Invocation.execute(Message.java:90)
at
com.thinkaurelius.thrift.TDisruptorServer$InvocationHandler.onEvent(TDisruptorServer.java:695)
at
com.thinkaurelius.thrift.TDisruptorServer$InvocationHandler.onEvent(TDisruptorServer.java:689)
at com.lmax.disruptor.WorkProcessor.run(WorkProcessor.java:112)
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:745)
{noformat}
The exception thrown from the
[code|https://github.com/apache/cassandra/blob/cassandra-2.0.16/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java#L119]
{code}
ResultMessage.Rows rows =
authenticateStatement.execute(QueryState.forInternalCalls(), new
QueryOptions(consistencyForUser(username),
Lists.newArrayList(ByteBufferUtil.bytes(username))));
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)