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

Billie Rinaldi commented on ACCUMULO-587:
-----------------------------------------

It appears to work.  I ran this and saw the warning:
{noformat}
    BatchScanner bs = conn.createBatchScanner("test", new Authorizations(), 1);
    bs.setRanges(Collections.singleton(new Range()));
    bs.iterator();
    bs = null;
    while (true)
      System.gc();
{noformat}

                
> 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
>
> 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

        

Reply via email to