[
https://issues.apache.org/jira/browse/CASSANDRA-6671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benedict updated CASSANDRA-6671:
--------------------------------
Attachment: tmp.patch
[~jbellis] I knew it was dangerous to replace NBQ with CLQ :-)
I will be dropping a major patch that would fix this within the next couple of
days, however this may take some time to get merged. In the mean time I'm
attaching a trivial fix: getLast() apparently isn't remotely concurrency safe,
and will throw a NPE if the queue is empty. peekLast() is the correct method to
use.
> NoSuchElementException in trunk
> -------------------------------
>
> Key: CASSANDRA-6671
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6671
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Tyler Hobbs
> Attachments: tmp.patch
>
>
> When running {{cassandra-stress -o 10000000}} from {{cassandra-1.2}} against
> the latest trunk, I noticed this error in the system log:
> {noformat}
> ERROR 01:13:11 Exception in thread Thread[MutationStage:68,5,main]
> java.lang.RuntimeException: java.util.NoSuchElementException
> at
> org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2063)
> ~[main/:na]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> ~[na:1.7.0_40]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> ~[na:1.7.0_40]
> at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_40]
> Caused by: java.util.NoSuchElementException: null
> at
> java.util.concurrent.ConcurrentLinkedDeque.screenNullResult(ConcurrentLinkedDeque.java:812)
> ~[na:1.7.0_40]
> at
> java.util.concurrent.ConcurrentLinkedDeque.getLast(ConcurrentLinkedDeque.java:963)
> ~[na:1.7.0_40]
> at
> org.apache.cassandra.utils.concurrent.WaitQueue.signalAll(WaitQueue.java:122)
> ~[main/:na]
> at
> org.apache.cassandra.utils.concurrent.OpOrder$Group.unlink(OpOrder.java:254)
> ~[main/:na]
> at
> org.apache.cassandra.utils.concurrent.OpOrder$Group.finishOne(OpOrder.java:209)
> ~[main/:na]
> at
> org.apache.cassandra.db.commitlog.CommitLogSegment$Allocation.markWritten(CommitLogSegment.java:581)
> ~[main/:na]
> at org.apache.cassandra.db.commitlog.CommitLog.add(CommitLog.java:231)
> ~[main/:na]
> at org.apache.cassandra.db.commitlog.CommitLog.add(CommitLog.java:193)
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:349) ~[main/:na]
> at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:328) ~[main/:na]
> at org.apache.cassandra.db.Mutation.apply(Mutation.java:205) ~[main/:na]
> at
> org.apache.cassandra.service.StorageProxy$7.runMayThrow(StorageProxy.java:997)
> ~[main/:na]
> at
> org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2059)
> ~[main/:na]
> ... 3 common frames omitted
> {noformat}
> I'm not sure what the implications are.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)