accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-3555) TabletServerBatchReaderIterator doesn't maintain reference to TabletServerBatchReader
Date Tue, 03 Feb 2015 16:09:34 GMT

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

Josh Elser commented on ACCUMULO-3555:
--------------------------------------

What are the semantics there, [~dlmarion]? Restart the entire scan? What happens to the first
iterator if you keep using it after making the second iterator?

First impression is that would just be an implementation concern. We'd just have to make sure
the TSBR is (re)opened when {{iterator()}}. If we do some ref-counting of the generated iterators,
we could also only close the TSBR when all iterators are exhausted.

To be clear, just brainstorming here at this point. Any of these changes would need to be
made in >=1.7.0, not in 1.5 or 1.6, since it would have a big impact on the user.

> TabletServerBatchReaderIterator doesn't maintain reference to TabletServerBatchReader
> -------------------------------------------------------------------------------------
>
>                 Key: ACCUMULO-3555
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-3555
>             Project: Accumulo
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.6.1
>            Reporter: Josh Elser
>            Assignee: Josh Elser
>            Priority: Blocker
>
> Had a user in IRC run into this again today upgrading a 1.4 instance to 1.6.0.
> ACCUMULO-587 introduced a {{finalize}} implementation into {{TabletServerBatchReader}}
in an attempt to close the {{BatchScanner}} when the user might have forgotten to do so themselves.
The problem, however, is that the {{TabletServerBatchReaderIterator}} doesn't maintain a reference
to the {{TabletServerBatchReader}} (notice how it only uses it to create a new instnace of
{{ScannerOptions}} using the copy constructor).
> In other words, when the {{TabletServerBatchReaderIterator}} is constructed, it has no
references in the object graph to the {{TabletServerBatchReader}} it was created from. This
means that if clients don't hold onto the BatchScanner instance, it's possible that it gets
closed by the JVM calling {{finalize()}}.



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

Mime
View raw message