[
https://issues.apache.org/jira/browse/ZOOKEEPER-1669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16096094#comment-16096094
]
ASF GitHub Bot commented on ZOOKEEPER-1669:
-------------------------------------------
Github user CheneySun commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/312#discussion_r128729244
--- Diff:
src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java ---
@@ -275,20 +307,9 @@ public synchronized void closeSession(long sessionId) {
@SuppressWarnings("unchecked")
private void closeSessionWithoutWakeup(long sessionId) {
- HashSet<NIOServerCnxn> cnxns;
- synchronized (this.cnxns) {
- cnxns = (HashSet<NIOServerCnxn>)this.cnxns.clone();
- }
-
- for (NIOServerCnxn cnxn : cnxns) {
- if (cnxn.getSessionId() == sessionId) {
- try {
- cnxn.close();
- } catch (Exception e) {
- LOG.warn("exception during session close", e);
- }
- break;
- }
+ NIOServerCnxn cnxn = sessionMap.remove(sessionId);
+ if (cnxn != null) {
+ cnxn.close();
--- End diff --
@eribeiro good catch, I will fix it.
> Operations to server will be timed-out while thousands of sessions expired
> same time
> ------------------------------------------------------------------------------------
>
> Key: ZOOKEEPER-1669
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1669
> Project: ZooKeeper
> Issue Type: Improvement
> Components: server
> Affects Versions: 3.3.5
> Reporter: tokoot
> Assignee: Cheney Sun
> Labels: performance
>
> If there are thousands of clients, and most of them disconnect with server
> same time(client restarted or servers partitioned with clients), the server
> will busy to close those "connections" and become unavailable. The problem is
> in following:
> private void closeSessionWithoutWakeup(long sessionId) {
> HashSet<NIOServerCnxn> cnxns;
> synchronized (this.cnxns) {
> cnxns = (HashSet<NIOServerCnxn>)this.cnxns.clone(); // other
> thread will block because of here
> }
> ...
> }
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)