You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@accumulo.apache.org by "Billie Rinaldi (JIRA)" <ji...@apache.org> on 2012/06/02 00:01:23 UTC

[jira] [Resolved] (ACCUMULO-587) Add finalize to TabletServerBatchReader to catch when user forgets to close

     [ 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