accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivan Bella (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-4502) Called next when there is no top
Date Fri, 04 Nov 2016 19:14:58 GMT

    [ https://issues.apache.org/jira/browse/ACCUMULO-4502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15637382#comment-15637382
] 

Ivan Bella commented on ACCUMULO-4502:
--------------------------------------

After an exhaustive search through this code, the only reason I can come up with is an issue
with a member reference in the underlying HeapIterator. The scenario would be as follows:

thread 1: calls hasTop() which is invoked on then in memory data source
thread 2: calls switchSource which sets up the new datasource and calls seek which results
in topIdx being set
thread1: calls next() which gets a value of null for topIdx

So if topIdx is marked as volatile then this should not happen.


> Called next when there is no top
> --------------------------------
>
>                 Key: ACCUMULO-4502
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4502
>             Project: Accumulo
>          Issue Type: Bug
>          Components: core, tserver
>    Affects Versions: 1.6.6
>            Reporter: Ivan Bella
>            Assignee: Ivan Bella
>             Fix For: 1.7.3, 1.8.1, 2.0.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> This happens very rarely but we have seen the following exception (pulled from a server
running 1.6.4).  Looking at the code I believe this condition can still happen in 1.8.0:
> java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Called next()
when there is no top
> ...
> Caused by: java.lang.IllegalStateException: Called next() when there is no top
> HeapIterator.next(HeapIterator.java: 77)
> WrappingIterator.next(WrappingIterator.java: 96)
> MemKeyConversionIterator.next(InMemoryMap.java:162)
> SourceSwitchingIterator.readNext(SourceSwitchingIterator.java: 139)
> SourceSwitchingIterator.next(SourceSwitchingIterator.java: 123)
> PartialMutationSkippingIterator.consume(InMemoryMap.java:108)
> SkippingIterator.seek(SkippingIterator.java:43)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message