Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 54555200BB9 for ; Mon, 7 Nov 2016 15:58:00 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 531D4160AEB; Mon, 7 Nov 2016 14:58:00 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 99561160B10 for ; Mon, 7 Nov 2016 15:57:59 +0100 (CET) Received: (qmail 73002 invoked by uid 500); 7 Nov 2016 14:57:58 -0000 Mailing-List: contact notifications-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jira@apache.org Delivered-To: mailing list notifications@accumulo.apache.org Received: (qmail 72705 invoked by uid 99); 7 Nov 2016 14:57:58 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Nov 2016 14:57:58 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 7B8052C2A67 for ; Mon, 7 Nov 2016 14:57:58 +0000 (UTC) Date: Mon, 7 Nov 2016 14:57:58 +0000 (UTC) From: "Keith Turner (JIRA)" To: notifications@accumulo.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (ACCUMULO-4502) Called next when there is no top MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 07 Nov 2016 14:58:00 -0000 [ https://issues.apache.org/jira/browse/ACCUMULO-4502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15644401#comment-15644401 ] Keith Turner commented on ACCUMULO-4502: ---------------------------------------- bq. The switch and subsequent pointer assignment is done on one thread, and the pointer is read on another. This is the only explanation I can come up with unless the dumped file is somehow not identical to the original memory file. I think synchronized should cover that case, if both threads sync on the same thing. Volatile would cover reads outside of sync block. Could just be some other bug, like the one you found with the Value being changed. > 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)