Jason Brown created CASSANDRA-7496:
--------------------------------------

             Summary: ClassCastException in MessagingService
                 Key: CASSANDRA-7496
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7496
             Project: Cassandra
          Issue Type: Bug
          Components: Core
         Environment: 3 node ccm cluster running in a linux VM on my laptop
            Reporter: Jason Brown
            Assignee: T Jake Luciani
            Priority: Blocker


Got the following exception when running repair on a 3 node ccm cluster

{code}
ERROR [EXPIRING-MAP-REAPER:1] 2014-07-03 21:24:33,063 CassandraDaemon.java:166 
- Exception in thread Thread[EXPIRING-MAP-REAPER:1,5,main]
java.lang.ClassCastException: org.apache.cassandra.net.CallbackInfo cannot be 
cast to org.apache.cassandra.net.WriteCallbackInfo
        at 
org.apache.cassandra.net.MessagingService$5.apply(MessagingService.java:352) 
~[main/:na]
        at 
org.apache.cassandra.net.MessagingService$5.apply(MessagingService.java:335) 
~[main/:na]
        at org.apache.cassandra.utils.ExpiringMap$1.run(ExpiringMap.java:98) 
~[main/:na]
        at 
org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:75)
 ~[main/:na]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
[na:1.7.0_60]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) 
[na:1.7.0_60]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
 [na:1.7.0_60]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
 [na:1.7.0_60]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_60]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_60]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]
{code}

Looks like that block (MessagingService, li. 352), was changed with 
CASSANDRA-7245.

While I produced this on trunk, I compared the MS code on trunk with 2.1.0 and 
it is  the same. This is the difference:

pre-7245
{code}
                if (expiredCallbackInfo.shouldHint())
                {
                    Mutation mutation = (Mutation) ((WriteCallbackInfo) 
expiredCallbackInfo).sentMessage.payload;
                    return StorageProxy.submitHint(mutation, 
expiredCallbackInfo.target, null);
                }
{code}

7245:
{code}
                Mutation mutation = (Mutation) ((WriteCallbackInfo) 
expiredCallbackInfo).sentMessage.payload;

                try
                {
                    if (expiredCallbackInfo.shouldHint())
                    {
                        return StorageProxy.submitHint(mutation, 
expiredCallbackInfo.target, null);
                    }
                }
                finally
                {
                    //We serialized a hint so we don't need this mutation 
anymore
                    mutation.release();
                }
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to