[ 
https://issues.apache.org/jira/browse/CASSANDRA-11381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15994472#comment-15994472
 ] 

mck commented on CASSANDRA-11381:
---------------------------------

[~jkni], i have finally come back to this…

{quote}CI revealed one small problem - when a fresh node is started with 
join_ring=False that has no tokens for other nodes discovered through gossip 
and no saved tokens, it hits an AssertionError in CassandraRoleManager setup 
that is not handled{quote}

{{CassandraRoleManager.setupDefaultRole()}} now throws an 
{{IllegalStateException}} if there are no known tokens in the ring. This 
permits {{CassandraRoleManager.scheduleSetupTask(..)}} to retry.

The {{topology_test.py:TestTopology.do_not_join_ring_test}} dtest looks ok now, 
locally.

\\

|| branch || testall || dtest ||
| 
[cassandra-2.2_11381|https://github.com/michaelsembwever/cassandra/tree/mck/cassandra-2.2_11381]
      | 
[testall|https://circleci.com/gh/michaelsembwever/cassandra/tree/mck%2Fcassandra-2.2_11381]
   | 
[dtest|https://builds.apache.org/view/A-D/view/Cassandra/job/Cassandra-devbranch-dtest/40/]
 |
| 
[cassandra-3.0_11381|https://github.com/michaelsembwever/cassandra/tree/mck/cassandra-3.0_11381]
      | 
[testall|https://circleci.com/gh/michaelsembwever/cassandra/tree/mck%2Fcassandra-3.0_11381]
   | 
[dtest|https://builds.apache.org/view/A-D/view/Cassandra/job/Cassandra-devbranch-dtest/41/]
 |
| 
[cassandra-3.11_11381|https://github.com/michaelsembwever/cassandra/tree/mck/cassandra-3.11_11381]
    | 
[testall|https://circleci.com/gh/michaelsembwever/cassandra/tree/mck%2Fcassandra-3.11_11381]
  | 
[dtest|https://builds.apache.org/view/A-D/view/Cassandra/job/Cassandra-devbranch-dtest/42/]
 |
| 
[trunk_11381|https://github.com/michaelsembwever/cassandra/tree/mck/trunk_11381]
      | 
[testall|https://circleci.com/gh/michaelsembwever/cassandra/tree/mck%2Ftrunk_11381]
   | 
[dtest|https://builds.apache.org/view/A-D/view/Cassandra/job/Cassandra-devbranch-dtest/43/]
 |

(the asf jenkins dtests take a while, and won't include the new 
[dtest|https://github.com/michaelsembwever/cassandra-dtest/tree/mck/master_11381])

> 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
>             Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x
>
>         Attachments: 11381-2.1.txt, 11381-2.2.txt, 11381-3.0.txt, 
> 11381-3.X.txt, 11381-trunk.txt, dtest-11381-trunk.txt
>
>
> 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.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to