You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Youngjoon Kim (JIRA)" <ji...@apache.org> on 2014/11/24 13:18:12 UTC

[jira] [Created] (BOOKKEEPER-804) Client program is not terminated when using openLedgerNoRecovery

Youngjoon Kim created BOOKKEEPER-804:
----------------------------------------

             Summary: Client program is not terminated when using openLedgerNoRecovery
                 Key: BOOKKEEPER-804
                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-804
             Project: Bookkeeper
          Issue Type: Bug
          Components: bookkeeper-client
    Affects Versions: 4.3.0
            Reporter: Youngjoon Kim


If a client program does some operations using a ledger handle opened by openLedgerNoRecovery(), the program is not terminated after the handle and bookkeeper object is closed.

Here is a sample code. 
{code}
import java.util.Enumeration;

import org.apache.bookkeeper.client.BookKeeper;
import org.apache.bookkeeper.client.LedgerEntry;
import org.apache.bookkeeper.client.LedgerHandle;

public class BkClient {
  public static void main(String[] args) {
    try {
      BookKeeper bk = new BookKeeper("localhost:2181");

      // 9 is a ledger id of an existing ledger
      LedgerHandle lh = bk.openLedgerNoRecovery(9, BookKeeper.DigestType.CRC32, "passwd".getBytes());

      Enumeration<LedgerEntry> entries = lh.readEntries(0, 0);

      lh.close();
      bk.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
{code}

Thread dump of this program shows that non-daemon thread "ZkLedgerManagerScheduler-0"  is alive, after bk.close() is called. 




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)