cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jaakko Laine (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-722) batch insert failing with TokenMetadata AssertionError
Date Wed, 20 Jan 2010 05:17:55 GMT


Jaakko Laine commented on CASSANDRA-722:

Seems there's a bug in getHintedMapForEndpoints. 

That bootsrapping node is probably considered dead by other nodes

This is what's happening:
(1) Node bootstraps -> it has pending ranges, but it is not member of token ring
(2) During write, pending ranges match -> node is added to write endpoints
(3) Node is down -> a hinted target will be searched for
(4) getToken explodes because endpoint is not member

There are two things that need to be considered:
(1) We probably should ignore endpoints that are not members when looking for hinted targets
(2) That assert in getToken is a bit outdated I think. Nodes may come and go during the time
ARS and friends are looking for write targets. It might very well happen that a node was removed
between getting natural endpoints and coming back to get hinted targets. There's a comment
saying "don't want to return nulls", but perhaps we'll need to reconsider this?

> batch insert failing with TokenMetadata AssertionError
> ------------------------------------------------------
>                 Key: CASSANDRA-722
>                 URL:
>             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 (line 1096) Internal
error processing batch_insert
> java.lang.AssertionError
>         at org.apache.cassandra.locator.TokenMetadata.getToken(
>         at org.apache.cassandra.locator.AbstractReplicationStrategy.getHintedMapForEndpoints(
>         at org.apache.cassandra.locator.AbstractReplicationStrategy.getHintedEndpoints(
>         at org.apache.cassandra.service.StorageService.getHintedEndpointMap(
>         at org.apache.cassandra.service.StorageProxy.insert(
>         at org.apache.cassandra.service.CassandraServer.doInsert(
>         at org.apache.cassandra.service.CassandraServer.batch_insert(
>         at org.apache.cassandra.service.Cassandra$Processor$batch_insert.process(
>         at org.apache.cassandra.service.Cassandra$Processor.process(
>         at org.apache.thrift.server.TThreadPoolServer$
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(
>         at java.util.concurrent.ThreadPoolExecutor$
>         at

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message