[
https://issues.apache.org/jira/browse/ACCUMULO-587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Billie Rinaldi resolved ACCUMULO-587.
-------------------------------------
Resolution: Fixed
Fix Version/s: 1.5.0
Looks good.
> Add finalize to TabletServerBatchReader to catch when user forgets to close
> ---------------------------------------------------------------------------
>
> Key: ACCUMULO-587
> URL: https://issues.apache.org/jira/browse/ACCUMULO-587
> Project: Accumulo
> Issue Type: Improvement
> Components: client
> Reporter: Dennis Patrone
> Assignee: Billie Rinaldi
> Priority: Trivial
> Fix For: 1.5.0
>
>
> If a client forgets to close a BatchScanner or BatchDeleter, threads are
> leaked in the TabletServerBatchReader implementation. It would be nice if a
> finalize method were added to check and warn the user of such a problem. The
> thread pool appeared to only be shared with the
> TabletServerBatchReaderIterator, which maintains a reference to the
> TabletServerBatchReader itself. So AFAICT if the TabletServerBatchReader is
> eligible for garbage collection, there can be no client references to that
> scanner or any iterators it created (i.e., it _should_ have been closed).
> For example:
> {code}
> protected void finalize() {
> if (!queryThreadPool.isShutdown()) {
> // add a logger reference in class initialization
> log.warn("TabletServerBatchReader not shutdown; did you forget to call
> close()?");
> close();
> }
> }
> {code}
> The same might be true for the TabletServerBatchWriter (it has a close), but
> I didn't look into that class.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira