cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joel Knighton (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-11381) Node running with join_ring=false and authentication can not serve requests
Date Fri, 26 May 2017 20:58:04 GMT


Joel Knighton commented on CASSANDRA-11381:

Thanks - this looks just about good. A few comments:
* The 3.0 branch looks like it is an older version of the patch than the 2.2, 3.11, and trunk
patches - it's missing the atomic guard ensuring we only run the set up one. Is this just
an oversight?
* The new exception looks good, but the condition is too restrictive. We'll only hit an error
when there are no tokens in the ring; the attached patch fails whenever the local node has
no tokens, even if there are other tokens in the ring. Changing the condition to something
like {{StorageService.instance.getTokenMetadata().sortedTokens().isEmpty()}} should suffice.

It would be great it we could cut down the time the new tests take to run. I have a few suggestions
that I'll post on the dtest PR once this is ready to go.

> 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.2.x, 3.0.x, 3.11.x, 4.x
> 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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message