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

Rakesh R commented on ZOOKEEPER-1459:
-------------------------------------

bq.In ZooKeeperServer, the transaction log handle is txnLogFactory rather than 
zkDb
Please see ServerCnxnFactory, here startup of the serverCnxn would create 
ZKDatabase by giving the txnLogFactory. I feel only if there is an exception in 
ZooKeeperServer startup, it can leave the txnLog as open. Attached latest patch 
where closed stream in finally block.
{code}
        zks.startdata();
        zks.startup();
{code}

Secondly, In the patch you are trying to close the txnLog in zk.shutdown. 
Initially I had tried similar approach(please refer my first patch) and faced 
few issues in FollowerZooKeeperServer quorum shutdown. If we look at QuorumPeer 
shutdown pattern, it is closing the ZooKeeperDatabase after shutting down the 
quorum at the last step. But with this patch, its closing the transactionlog 
within the shutdown.
{code}
ZooKeeperServer.java
+ if (txnLogFactory != null)
+              txnLogFactory.close();
{code}


> Standalone ZooKeeperServer is not closing the transaction log files on 
> shutdown
> -------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1459
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1459
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.4.0
>            Reporter: Rakesh R
>            Assignee: Rakesh R
>             Fix For: 3.4.6, 3.5.0
>
>         Attachments: ZOOKEEPER-1459.patch, ZOOKEEPER-1459.patch, 
> ZOOKEEPER-1459.patch, ZOOKEEPER-1459.patch, ZOOKEEPER-1459.patch, 
> ZOOKEEPER-1459.patch, ZOOKEEPER-1459.patch
>
>
> When shutdown the standalone ZK server, its only clearing the zkdatabase and 
> not closing the transaction log streams. When tries to delete the temporary 
> files in unit tests on windows, its failing.
> ZooKeeperServer.java
> {noformat}
>         if (zkDb != null) {
>             zkDb.clear();
>         }
> {noformat}
> Suggestion to close the zkDb as follows, this inturn will take care 
> transaction logs:
> {noformat}
>         if (zkDb != null) {
>             zkDb.clear();
>             try {
>                 zkDb.close();
>             } catch (IOException ie) {
>                 LOG.warn("Error closing logs ", ie);
>             }
>         }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to