[ https://issues.apache.org/jira/browse/ACCUMULO-3555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14303512#comment-14303512 ]
Dave Marion commented on ACCUMULO-3555: --------------------------------------- Looking at 1.6 code, but close just shuts down the query thread pool, and TSBR.iterator() just does some state validation. It could be as simple as TSBR.iterator() creates a new threadpool for each invocation, but that could exhaust resources. If there are any non-backwards compatible changes here, then this will need to be in a major version (2.0). > 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)