Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Won't Fix
-
1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.6.1
-
None
-
None
Description
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().