cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Tunnicliffe (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-11381) Node running with join_ring=false and authentication can not serve requests
Date Tue, 26 Apr 2016 17:19:12 GMT


Sam Tunnicliffe commented on CASSANDRA-11381:

Giving it some further thought, I think that the moving {{doAuthSetup}} to before joining
is only going to be problematic for the first node in a fresh cluster, and then only if it
doesn't join (at least in 3.0+). Starting a new coordinator-only node in an existing cluster
should be fine, and re-starting an existing node without joining should also be ok, as long
as the replication of {{system_auth}} can cope with it. 

> Node running with join_ring=false and authentication can not serve requests
> ---------------------------------------------------------------------------
>                 Key: CASSANDRA-11381
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: mck
>            Assignee: mck
>             Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x
>         Attachments: 11381-2.0.txt, 11381-2.1.txt, 11381-2.2.txt, 11381-3.0.txt, 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(
>         at org.apache.cassandra.thrift.CassandraServer.login(
>         at org.apache.cassandra.thrift.Cassandra$Processor$login.getResult(
>         at org.apache.cassandra.thrift.Cassandra$Processor$login.getResult(
>         at org.apache.thrift.ProcessFunction.process(
>         at org.apache.thrift.TBaseProcessor.process(
>         at com.thinkaurelius.thrift.Message.invoke(
>         at com.thinkaurelius.thrift.Message$Invocation.execute(
>         at com.thinkaurelius.thrift.TDisruptorServer$InvocationHandler.onEvent(
>         at com.thinkaurelius.thrift.TDisruptorServer$InvocationHandler.onEvent(
>         at
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(
>         at java.util.concurrent.ThreadPoolExecutor$
>         at
> {noformat}
> The exception thrown from the [code|]
> {code}
> ResultMessage.Rows rows = authenticateStatement.execute(QueryState.forInternalCalls(),
new QueryOptions(consistencyForUser(username),
> {code}

This message was sent by Atlassian JIRA

View raw message