You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by si...@apache.org on 2013/10/30 05:59:48 UTC
svn commit: r1536965 - in /zookeeper/bookkeeper/trunk: CHANGES.txt
bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClient.java
Author: sijie
Date: Wed Oct 30 04:59:47 2013
New Revision: 1536965
URL: http://svn.apache.org/r1536965
Log:
BOOKKEEPER-698: Bookie client closure is not considering timeoutExecutor (rakesh via sijie)
Modified:
zookeeper/bookkeeper/trunk/CHANGES.txt
zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClient.java
Modified: zookeeper/bookkeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/CHANGES.txt?rev=1536965&r1=1536964&r2=1536965&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/CHANGES.txt (original)
+++ zookeeper/bookkeeper/trunk/CHANGES.txt Wed Oct 30 04:59:47 2013
@@ -186,6 +186,8 @@ Trunk (unreleased changes)
BOOKKEEPER-602: we should have request timeouts rather than channel timeout in PerChannelBookieClient (Aniruddha, ivank via sijie)
+ BOOKKEEPER-698: Bookie client closure is not considering timeoutExecutor (rakesh via sijie)
+
NEW FEATURE:
BOOKKEEPER-562: Ability to tell if a ledger is closed or not (fpj)
Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClient.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClient.java?rev=1536965&r1=1536964&r2=1536965&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClient.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClient.java Wed Oct 30 04:59:47 2013
@@ -30,6 +30,7 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -47,12 +48,8 @@ import org.jboss.netty.channel.socket.ni
import com.google.common.util.concurrent.ThreadFactoryBuilder;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-import static com.google.common.base.Charsets.UTF_8;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
/**
* Implements the client-side part of the BookKeeper protocol.
*
@@ -67,7 +64,9 @@ public class BookieClient {
final ClientSocketChannelFactory channelFactory;
final ConcurrentHashMap<InetSocketAddress, PerChannelBookieClient> channels =
new ConcurrentHashMap<InetSocketAddress, PerChannelBookieClient>();
- final ScheduledExecutorService timeoutExecutor = Executors.newSingleThreadScheduledExecutor();
+ final ScheduledExecutorService timeoutExecutor = Executors
+ .newSingleThreadScheduledExecutor(new ThreadFactoryBuilder()
+ .setNameFormat("BKClient-TimeoutTaskExecutor-%d").build());
private final ClientConfiguration conf;
private volatile boolean closed;
private final ReentrantReadWriteLock closeLock;
@@ -218,6 +217,16 @@ public class BookieClient {
} finally {
closeLock.writeLock().unlock();
}
+ timeoutExecutor.shutdown();
+ try {
+ if (!timeoutExecutor.awaitTermination(5, TimeUnit.SECONDS)) {
+ LOG.warn("BKClient-TimeoutTaskExecutor did not shutdown cleanly!");
+ }
+ } catch (InterruptedException ie) {
+ LOG.warn(
+ "Interrupted when shutting down BKClient-TimeoutTaskExecutor",
+ ie);
+ }
}
private static class Counter {