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 58A05200B85 for ; Wed, 31 Aug 2016 19:41:23 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 5713F160AA7; Wed, 31 Aug 2016 17:41:23 +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 9F9CC160AB4 for ; Wed, 31 Aug 2016 19:41:22 +0200 (CEST) Received: (qmail 56589 invoked by uid 500); 31 Aug 2016 17:41:21 -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 56313 invoked by uid 99); 31 Aug 2016 17:41:21 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 31 Aug 2016 17:41:21 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 93D172C1B75 for ; Wed, 31 Aug 2016 17:41:21 +0000 (UTC) Date: Wed, 31 Aug 2016 17:41:21 +0000 (UTC) From: "Daniel Blum (JIRA)" To: notifications@accumulo.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (ACCUMULO-4435) WholeColumnFamilyIterator doesn't work after re-init MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Wed, 31 Aug 2016 17:41:23 -0000 [ https://issues.apache.org/jira/browse/ACCUMULO-4435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15452851#comment-15452851 ] Daniel Blum commented on ACCUMULO-4435: --------------------------------------- It should be easily reproducible - just use WCFI on any scan that will last long enough to require re-initialization (I don't know how Accumulo decides when to do this). I'm afraid we don't have any budget to spend on patch creation, since using WCFI is not critical to us. > WholeColumnFamilyIterator doesn't work after re-init > ---------------------------------------------------- > > Key: ACCUMULO-4435 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4435 > Project: Accumulo > Issue Type: Bug > Components: core > Affects Versions: 1.6.5 > Reporter: Daniel Blum > Priority: Minor > Labels: iterators > > When using WholeColumnFamilyIterator this exception is thrown: > {noformat} > java.lang.IllegalStateException: never been seeked > at org.apache.accumulo.core.iterators.WrappingIterator.hasTop(WrappingIterator.java:80) > at org.apache.accumulo.core.iterators.user.WholeColumnFamilyIterator.hasTop(WholeColumnFamilyIterator.java:213) > at org.apache.accumulo.core.iterators.system.SourceSwitchingIterator.readNext(SourceSwitchingIterator.java:132) > at org.apache.accumulo.core.iterators.system.SourceSwitchingIterator.seek(SourceSwitchingIterator.java:167) > at org.apache.accumulo.tserver.Tablet.lookup(Tablet.java:1523) > at org.apache.accumulo.tserver.Tablet.lookup(Tablet.java:1630) > at org.apache.accumulo.tserver.TabletServer$ThriftClientHandler$LookupTask.run(TabletServer.java:1155) > at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at org.apache.accumulo.trace.instrument.TraceRunnable.run(TraceRunnable.java:47) > at org.apache.accumulo.core.util.LoggingRunnable.run(LoggingRunnable.java:34) > at java.lang.Thread.run(Thread.java:745) > {noformat} > I THINK this is caused by re-initialization of the iterator stack. When this happens WCFI.seek() may end up returning without calling seek() on its source (because it gets a range with effectively nothing in it). This would be fine except that WCFI.hasTop() calls hasTop() on its source; since the source has not been seeked yet, the exception is thrown. > WholeRowIterator does not run into this problem in spite of using the same seek logic because its hasTop (actually RowEncodingIterator.hasTop) does not check the source's hasTop. (The way RowEncodingIterator and WCFI handle all of this does not really conform to the interface definition - they should really keep track themselves of whether they have been seeked and throw the appropriate exceptions.) > I actually encountered this in 1.6.2, but I can't select that as a version here. I believe the problem also exists in 1.6.5 (and 1.7.2) based on inspecting the source, but cannot test with those versions right now to confirm. -- This message was sent by Atlassian JIRA (v6.3.4#6332)