You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Gary Dusbabek (JIRA)" <ji...@apache.org> on 2010/06/08 00:29:13 UTC
[jira] Commented: (CASSANDRA-1160) race with insufficiently
constructed Gossiper
[ https://issues.apache.org/jira/browse/CASSANDRA-1160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12876459#action_12876459 ]
Gary Dusbabek commented on CASSANDRA-1160:
------------------------------------------
What were the failures in testClientOnlyMode? I'm sure they can be worked around.
I'm not a fan of Gossiper.preRegistrations. I think it is a code smell that we're not spinning up Gossiper the right way. What if we were to make Gossiper.start() blocking until we were sure it was in a healthy state (keep in mind the single-node cluster) and then make sure it was called before MessageService.listen()?
> race with insufficiently constructed Gossiper
> ---------------------------------------------
>
> Key: CASSANDRA-1160
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1160
> Project: Cassandra
> Issue Type: Bug
> Reporter: Jonathan Ellis
> Assignee: Matthew F. Dennis
> Priority: Minor
> Fix For: 0.6.3
>
> Attachments: 0001-cassandra-0.6-1160.patch
>
>
> Gossiper.start needs to be integrated into the constructor. Currently you can have threads using the gossiper instance before start finishes (or even starts?), resulting in tracebacks like this:
> ERROR [GMFD:1] 2010-06-02 10:45:49,878 CassandraDaemon.java (line 78) Fatal exception in thread Thread[GMFD:1,5,main]
> java.lang.AssertionError
> at org.apache.cassandra.net.Header.<init>(Header.java:56)
> at org.apache.cassandra.net.Header.<init>(Header.java:74)
> at org.apache.cassandra.net.Message.<init>(Message.java:58)
> at org.apache.cassandra.gms.Gossiper.makeGossipDigestAckMessage(Gossiper.java:294)
> at org.apache.cassandra.gms.Gossiper$GossipDigestSynVerbHandler.doVerb(Gossiper.java:935)
> at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:40)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> ERROR [GMFD:2] 2010-06-02 10:45:49,880 CassandraDaemon.java (line 78) Fatal exception in thread Thread[GMFD:2,5,main]
> java.lang.AssertionError
> at org.apache.cassandra.net.Header.<init>(Header.java:56)
> at org.apache.cassandra.net.Header.<init>(Header.java:74)
> at org.apache.cassandra.net.Message.<init>(Message.java:58)
> at org.apache.cassandra.gms.Gossiper.makeGossipDigestAckMessage(Gossiper.java:294)
> at org.apache.cassandra.gms.Gossiper$GossipDigestSynVerbHandler.doVerb(Gossiper.java:935)
> at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:40)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.