[ https://issues.apache.org/jira/browse/CASSANDRA-5979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13767107#comment-13767107 ]
Michael Kjellman commented on CASSANDRA-5979: --------------------------------------------- just to elaborate a bit on my earlier comment, it appears that the check/return for empty columns occasionally manifests itself with a NullPointerException. At first I thought about just checking if columns was null inside reduce() (RowIteratorFactory) but then realized that getReduced() is called all over the place, and if the row isn't cached, returnCF can't be null. Rick, not sure if you had any ideas on catching this earlier in the logic instead of playing wack-o-mole > HintedHandOffManager task triggering java.util.NoSuchElementException > --------------------------------------------------------------------- > > Key: CASSANDRA-5979 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5979 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Ravi Prasad > Assignee: Jonathan Ellis > Fix For: 1.2.10 > > Attachments: 5979-2.txt, 5979.txt > > > Seeing this exception every 10 minutes, whenever scheduled HintedHandoff task > runs: > ERROR [OptionalTasks:1] 2013-09-05 20:48:00,334 CassandraDaemon.java (line > 192) Exception in thread Thread[OptionalTasks:1,5,main] > java.util.NoSuchElementException > at > com.google.common.collect.EmptyImmutableSortedSet.last(EmptyImmutableSortedSet.java:100) > at > org.apache.cassandra.db.columniterator.SSTableNamesIterator.readSimpleColumns(SSTableNamesIterator.java:186) > at > org.apache.cassandra.db.columniterator.SSTableNamesIterator.read(SSTableNamesIterator.java:156) > at > org.apache.cassandra.db.columniterator.SSTableNamesIterator.<init>(SSTableNamesIterator.java:83) > at > org.apache.cassandra.db.filter.NamesQueryFilter.getSSTableColumnIterator(NamesQueryFilter.java:86) > at > org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:75) > at > org.apache.cassandra.io.sstable.SSTableScanner$FilteredKeyScanningIterator$1.create(SSTableScanner.java:248) > at > org.apache.cassandra.db.columniterator.LazyColumnIterator.getSubIterator(LazyColumnIterator.java:75) > at > org.apache.cassandra.db.columniterator.LazyColumnIterator.getColumnFamily(LazyColumnIterator.java:87) > at > org.apache.cassandra.db.RowIteratorFactory$2.reduce(RowIteratorFactory.java:95) > at > org.apache.cassandra.db.RowIteratorFactory$2.reduce(RowIteratorFactory.java:79) > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:111) > at > org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:97) > at > com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) > at > com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) > at > org.apache.cassandra.db.ColumnFamilyStore$6.computeNext(ColumnFamilyStore.java:1433) > at > org.apache.cassandra.db.ColumnFamilyStore$6.computeNext(ColumnFamilyStore.java:1429) > at > com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) > at > com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) > at > org.apache.cassandra.db.ColumnFamilyStore.filter(ColumnFamilyStore.java:1500) > at > org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:1477) > at > org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:1472) > at > org.apache.cassandra.db.HintedHandOffManager.scheduleAllDeliveries(HintedHandOffManager.java:464) > at > org.apache.cassandra.db.HintedHandOffManager.access$000(HintedHandOffManager.java:90) > at > org.apache.cassandra.db.HintedHandOffManager$1.run(HintedHandOffManager.java:133) > at > org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:75) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at > java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:722) > this seems to be a regression from > https://issues.apache.org/jira/browse/CASSANDRA-5966. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira