[
https://issues.apache.org/jira/browse/CASSANDRA-722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12802690#action_12802690
]
Jaakko Laine commented on CASSANDRA-722:
----------------------------------------
(2) it does not make sense, but it might happen. Suppose a node is natural
endpoint of a write. StorageProxy gets these in mutate, and then passes the
same list to getHintedEndpointMap. If one of these natural endpoints is removed
in between getNaturalEndpoints and finding hinted targets, there will be a call
to getToken for non-existing endpoint. It does not help even if we insert
isMember check right before getToken, as there is still small window that could
cause this.
Basically the same can happen wherever we use getToken
> batch insert failing with TokenMetadata AssertionError
> ------------------------------------------------------
>
> Key: CASSANDRA-722
> URL: https://issues.apache.org/jira/browse/CASSANDRA-722
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.5
> Environment: r900058 4 node cluster, 1 more bootstrapping
> Reporter: Dan Di Spaltro
> Assignee: Jaakko Laine
> Fix For: 0.5
>
>
> I get this during the course of an insert.
> ERROR [pool-1-thread-17] 2010-01-20 03:50:40,517 Cassandra.java (line 1096)
> Internal error processing batch_insert
> java.lang.AssertionError
> at
> org.apache.cassandra.locator.TokenMetadata.getToken(TokenMetadata.java:212)
> at
> org.apache.cassandra.locator.AbstractReplicationStrategy.getHintedMapForEndpoints(AbstractReplicationStrategy.java:129)
> at
> org.apache.cassandra.locator.AbstractReplicationStrategy.getHintedEndpoints(AbstractReplicationStrategy.java:76)
> at
> org.apache.cassandra.service.StorageService.getHintedEndpointMap(StorageService.java:1183)
> at
> org.apache.cassandra.service.StorageProxy.insert(StorageProxy.java:101)
> at
> org.apache.cassandra.service.CassandraServer.doInsert(CassandraServer.java:470)
> at
> org.apache.cassandra.service.CassandraServer.batch_insert(CassandraServer.java:445)
> at
> org.apache.cassandra.service.Cassandra$Processor$batch_insert.process(Cassandra.java:1088)
> at
> org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:817)
> at
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:253)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:636)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.