cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "david.pan (JIRA)" <>
Subject [jira] Created: (CASSANDRA-742) write operation will throw internal error if the bootstrapping node is down
Date Tue, 26 Jan 2010 10:00:34 GMT
write operation will throw internal error if the bootstrapping node is down

                 Key: CASSANDRA-742
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.5
         Environment: linux2.6
            Reporter: david.pan
             Fix For: 0.6

the opertions are that :
1) bootstrap a node A;
2) keep on inserting data while bootstrapping;
3) stop the service of the node A;
4) then the following exception was found:
ERROR [pool-1-thread-9] 2010-01-26 10:32:39,688 (line 1064) Internal error
processing insert
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.insertBlocking(
at org.apache.cassandra.service.CassandraServer.doInsert(
at org.apache.cassandra.service.CassandraServer.insert(
at org.apache.cassandra.service.Cassandra$Processor$insert.process(
at org.apache.cassandra.service.Cassandra$Processor.process(
at org.apache.thrift.server.TThreadPoolServer$
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
at java.util.concurrent.ThreadPoolExecutor$

I traced the code and found that "org.apache.cassandra.locator.AbstractReplicationStrategy.getHintedMapForEndpoints(Collection<InetAddress>)"
will select a hinted endpoint for a dead endpoint, no mater whether it's a normal node or
a bootstrapping node. To get the tokenID of the endpoint, this method will call "tokenMetadata_.getToken(ep);",
but getToken() asserts that the endpoint should be  a member of the ring only. Of course,
the bootstrapping endpoint is not a member and a internal exception is throwed out.
This exception will always be throwed out until I re-boostrapping. This is really a big prolem
for me, because the bootstrapping will last  30 hours and my machines are not very durable.
I have to get up from bed at night to deal with this accident. :-(

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

View raw message