[ https://issues.apache.org/jira/browse/CASSANDRA-9694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14611882#comment-14611882 ]
Sam Tunnicliffe commented on CASSANDRA-9694: -------------------------------------------- Those stacktraces should not happen if the process I described is followed. As I mentioned, the authenticator & authorizer won't attempt to actually use the new tables until the old ones are removed, but you can see from the log that this is happening. Because you wiped the {{system_auth}} keyspace on the single upgraded node, when it restarted it immediately began attempting to access them, but as the rest of the cluster (still on 2.1.7) doesn't have them you see those errors. I should note that when following the correct procedure, you *will* still see some stacktraces in the non-upgraded nodes' log files as the upgraded nodes attempt to perform the data conversion, but these are harmless. They don't propagate back to clients and they are what inform the upgrading node that the conversion cannot be completed yet. For reference, these are the sort of errors to expect: {noformat} WARN [MessagingService-Incoming-/127.0.0.1] 2015-07-02 12:15:23,544 IncomingTcpConnection.java:97 - UnknownColumnFamilyException reading from socket; closing org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find cfId=3afbe79f-2194-31a7-add7-f5ab90d8ec9c at org.apache.cassandra.db.ColumnFamilySerializer.deserializeCfId(ColumnFamilySerializer.java:164) ~[main/:na] at org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:97) ~[main/:na] at org.apache.cassandra.db.Mutation$MutationSerializer.deserializeOneCf(Mutation.java:322) ~[main/:na] at org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:302) ~[main/:na] at org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:330) ~[main/:na] at org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:272) ~[main/:na] at org.apache.cassandra.net.MessageIn.read(MessageIn.java:99) ~[main/:na] at org.apache.cassandra.net.IncomingTcpConnection.receiveMessage(IncomingTcpConnection.java:188) ~[main/:na] at org.apache.cassandra.net.IncomingTcpConnection.receiveMessages(IncomingTcpConnection.java:170) ~[main/:na] at org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:88) ~[main/:na] {noformat} > system_auth not upgraded > ------------------------ > > Key: CASSANDRA-9694 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9694 > Project: Cassandra > Issue Type: Bug > Components: Core > Environment: Windows-7-32 bit, 3.2GB RAM, Java 1.7.0_55 > Reporter: Andreas Schnitzerling > Assignee: Sam Tunnicliffe > Fix For: 2.2.0 rc2 > > Attachments: 9694.txt, system_exception.log > > > After upgrading Authorization-Exceptions occur. I checked the system_auth > keyspace and have seen, that tables users, credentials and permissions were > not upgraded automatically. I upgraded them (I needed 2 times per table > because of CASSANDRA-9566). After upgrading the system_auth tables I could > login via cql using different users. > {code:title=system.log} > WARN [Thrift:14] 2015-07-01 11:38:57,748 CassandraAuthorizer.java:91 - > CassandraAuthorizer failed to authorize #<User updateprog> for <keyspace > logdata> > ERROR [Thrift:14] 2015-07-01 11:41:26,210 CustomTThreadPoolServer.java:223 - > Error occurred during processing of message. > com.google.common.util.concurrent.UncheckedExecutionException: > java.lang.RuntimeException: > org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - > received only 0 responses. > at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201) > ~[guava-16.0.jar:na] > at com.google.common.cache.LocalCache.get(LocalCache.java:3934) > ~[guava-16.0.jar:na] > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938) > ~[guava-16.0.jar:na] > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821) > ~[guava-16.0.jar:na] > at > org.apache.cassandra.auth.PermissionsCache.getPermissions(PermissionsCache.java:72) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.auth.AuthenticatedUser.getPermissions(AuthenticatedUser.java:104) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.service.ClientState.authorize(ClientState.java:362) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.service.ClientState.checkPermissionOnResourceChain(ClientState.java:295) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.service.ClientState.ensureHasPermission(ClientState.java:272) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.service.ClientState.hasAccess(ClientState.java:259) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.service.ClientState.hasColumnFamilyAccess(ClientState.java:243) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.cql3.statements.SelectStatement.checkAccess(SelectStatement.java:143) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:222) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:256) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:241) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1891) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4588) > ~[apache-cassandra-thrift-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4572) > ~[apache-cassandra-thrift-2.2.0-rc1.jar:2.2.0-rc1] > at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) > ~[libthrift-0.9.2.jar:0.9.2] > at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) > ~[libthrift-0.9.2.jar:0.9.2] > at > org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:204) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > [na:1.7.0_55] > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > [na:1.7.0_55] > at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)