ZooKeeper-trunk-WinVS2008 - Build # 2445 - Still Failing
See https://builds.apache.org/job/ZooKeeper-trunk-WinVS2008/2445/ ### ## LAST 60 LINES OF THE CONSOLE ### Started by an SCM change No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found [EnvInject] - Loading node environment variables. No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found Building remotely on windows-2012-2 (Windows) in workspace f:\jenkins\jenkins-slave\workspace\ZooKeeper-trunk-WinVS2008 No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url git://git.apache.org/zookeeper.git # timeout=10 Cleaning workspace > git rev-parse --verify HEAD # timeout=10 Resetting working tree > git reset --hard # timeout=10 > git clean -fdx # timeout=10 Fetching upstream changes from git://git.apache.org/zookeeper.git > git --version # timeout=10 > git fetch --tags --progress git://git.apache.org/zookeeper.git > +refs/heads/*:refs/remotes/origin/* > git rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 > git rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found Checking out Revision 54c7f6b472ed7bb10fd86cb3c28262fa4f7351d9 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 54c7f6b472ed7bb10fd86cb3c28262fa4f7351d9 > git rev-list 54c7f6b472ed7bb10fd86cb3c28262fa4f7351d9 # timeout=10 No emails were triggered. No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found [ZooKeeper-trunk-WinVS2008] $ cmd.exe /C "F:\jenkins\tools\ant\latest\bin\ant.bat -Dtest.output=yes -Dtest.junit.output.format=xml clean compile_jute && exit %%ERRORLEVEL%%" java.lang.UnsupportedClassVersionError: org/apache/tools/ant/launch/Launcher : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) Exception in thread "main" Build step 'Invoke Ant' marked build as failure No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found Email was triggered for: Failure - Any Sending email for trigger: Failure - Any No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found ### ## FAILED TESTS (if any) ## No tests ran.
ZooKeeper-trunk-WinVS2008 - Build # 2444 - Still Failing
See https://builds.apache.org/job/ZooKeeper-trunk-WinVS2008/2444/ ### ## LAST 60 LINES OF THE CONSOLE ### Started by timer No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found [EnvInject] - Loading node environment variables. No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found Building remotely on windows-2012-2 (Windows) in workspace f:\jenkins\jenkins-slave\workspace\ZooKeeper-trunk-WinVS2008 No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url git://git.apache.org/zookeeper.git # timeout=10 Cleaning workspace > git rev-parse --verify HEAD # timeout=10 Resetting working tree > git reset --hard # timeout=10 > git clean -fdx # timeout=10 Fetching upstream changes from git://git.apache.org/zookeeper.git > git --version # timeout=10 > git fetch --tags --progress git://git.apache.org/zookeeper.git > +refs/heads/*:refs/remotes/origin/* > git rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 > git rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found Checking out Revision 54c7f6b472ed7bb10fd86cb3c28262fa4f7351d9 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 54c7f6b472ed7bb10fd86cb3c28262fa4f7351d9 > git rev-list 0313a0e0b6c47b316271533165e5830d1ca04478 # timeout=10 No emails were triggered. No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found [ZooKeeper-trunk-WinVS2008] $ cmd.exe /C "F:\jenkins\tools\ant\latest\bin\ant.bat -Dtest.output=yes -Dtest.junit.output.format=xml clean compile_jute && exit %%ERRORLEVEL%%" java.lang.UnsupportedClassVersionError: org/apache/tools/ant/launch/Launcher : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) Exception in thread "main" Build step 'Invoke Ant' marked build as failure No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found Email was triggered for: Failure - Any Sending email for trigger: Failure - Any No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found No JDK named ‘JDK 1.8 (unlimited security) 64-bit Windows only’ found ### ## FAILED TESTS (if any) ## No tests ran.
[jira] [Commented] (ZOOKEEPER-2280) NettyServerCnxnFactory doesn't honor maxClientCnxns param
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941585#comment-15941585 ] ASF GitHub Bot commented on ZOOKEEPER-2280: --- Github user vincentpoon commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/208#discussion_r108028137 --- Diff: src/java/main/org/apache/zookeeper/server/NettyServerCnxn.java --- @@ -100,11 +101,15 @@ public void close() { + Long.toHexString(sessionId)); } -synchronized (factory.ipMap) { -Set s = -factory.ipMap.get(((InetSocketAddress)channel -.getRemoteAddress()).getAddress()); -s.remove(this); +InetAddress address = ((InetSocketAddress) channel.getRemoteAddress()).getAddress(); +Set s = factory.ipMap.get(address); +if (s != null) { +synchronized (s) { --- End diff -- Do you need the synchronized here if you're using Collections.synchronizedSet already? > NettyServerCnxnFactory doesn't honor maxClientCnxns param > - > > Key: ZOOKEEPER-2280 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2280 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.4.6, 3.5.0, 3.5.1 >Reporter: Edward Ribeiro >Assignee: Edward Ribeiro > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-2280.2.patch, ZOOKEEPER-2280.patch > > > Even though NettyServerCnxnFactory has maxClientCnxns (default to 60) it > doesn't enforce this limit in the code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2280) NettyServerCnxnFactory doesn't honor maxClientCnxns param
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941586#comment-15941586 ] ASF GitHub Bot commented on ZOOKEEPER-2280: --- Github user vincentpoon commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/208#discussion_r108028293 --- Diff: src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java --- @@ -109,6 +110,20 @@ public void channelConnected(ChannelHandlerContext ctx, zkServer, NettyServerCnxnFactory.this); ctx.setAttachment(cnxn); +InetAddress addr = ((InetSocketAddress)cnxn.channel.getRemoteAddress()).getAddress(); +Set s = ipMap.get(addr); +if (s != null) { +synchronized (s) { --- End diff -- Same here - check if synchronized is needed > NettyServerCnxnFactory doesn't honor maxClientCnxns param > - > > Key: ZOOKEEPER-2280 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2280 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.4.6, 3.5.0, 3.5.1 >Reporter: Edward Ribeiro >Assignee: Edward Ribeiro > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-2280.2.patch, ZOOKEEPER-2280.patch > > > Even though NettyServerCnxnFactory has maxClientCnxns (default to 60) it > doesn't enforce this limit in the code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] zookeeper pull request #208: ZOOKEEPER-2280: NettyServerCnxnFactory doesn't ...
Github user vincentpoon commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/208#discussion_r108028137 --- Diff: src/java/main/org/apache/zookeeper/server/NettyServerCnxn.java --- @@ -100,11 +101,15 @@ public void close() { + Long.toHexString(sessionId)); } -synchronized (factory.ipMap) { -Set s = -factory.ipMap.get(((InetSocketAddress)channel -.getRemoteAddress()).getAddress()); -s.remove(this); +InetAddress address = ((InetSocketAddress) channel.getRemoteAddress()).getAddress(); +Set s = factory.ipMap.get(address); +if (s != null) { +synchronized (s) { --- End diff -- Do you need the synchronized here if you're using Collections.synchronizedSet already? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] zookeeper pull request #208: ZOOKEEPER-2280: NettyServerCnxnFactory doesn't ...
Github user vincentpoon commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/208#discussion_r108028293 --- Diff: src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java --- @@ -109,6 +110,20 @@ public void channelConnected(ChannelHandlerContext ctx, zkServer, NettyServerCnxnFactory.this); ctx.setAttachment(cnxn); +InetAddress addr = ((InetSocketAddress)cnxn.channel.getRemoteAddress()).getAddress(); +Set s = ipMap.get(addr); +if (s != null) { +synchronized (s) { --- End diff -- Same here - check if synchronized is needed --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (ZOOKEEPER-2280) NettyServerCnxnFactory doesn't honor maxClientCnxns param
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941570#comment-15941570 ] Hadoop QA commented on ZOOKEEPER-2280: -- -1 overall. GitHub Pull Request Build +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 3 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 3.0.1) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. -1 core tests. The patch failed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/481//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/481//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/481//console This message is automatically generated. > NettyServerCnxnFactory doesn't honor maxClientCnxns param > - > > Key: ZOOKEEPER-2280 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2280 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.4.6, 3.5.0, 3.5.1 >Reporter: Edward Ribeiro >Assignee: Edward Ribeiro > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-2280.2.patch, ZOOKEEPER-2280.patch > > > Even though NettyServerCnxnFactory has maxClientCnxns (default to 60) it > doesn't enforce this limit in the code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
Failed: ZOOKEEPER- PreCommit Build #481
Build: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/481/ ### ## LAST 60 LINES OF THE CONSOLE ### [...truncated 68.97 MB...] [exec] [exec] +1 javadoc. The javadoc tool did not generate any warning messages. [exec] [exec] +1 javac. The applied patch does not increase the total number of javac compiler warnings. [exec] [exec] +1 findbugs. The patch does not introduce any new Findbugs (version 3.0.1) warnings. [exec] [exec] +1 release audit. The applied patch does not increase the total number of release audit warnings. [exec] [exec] -1 core tests. The patch failed core unit tests. [exec] [exec] +1 contrib tests. The patch passed contrib unit tests. [exec] [exec] Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/481//testReport/ [exec] Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/481//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html [exec] Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/481//console [exec] [exec] This message is automatically generated. [exec] [exec] [exec] == [exec] == [exec] Adding comment to Jira. [exec] == [exec] == [exec] [exec] [exec] Comment added. [exec] a6e1e3ad9e9cfdf97d2a91f5f0869fe4bc975bbf logged out [exec] [exec] [exec] == [exec] == [exec] Finished build. [exec] == [exec] == [exec] [exec] [exec] mv: '/home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/patchprocess' and '/home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/patchprocess' are the same file BUILD FAILED /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/build.xml:1642: exec returned: 1 Total time: 13 minutes 55 seconds Build step 'Execute shell' marked build as failure Archiving artifacts Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Compressed 578.90 KB of artifacts by 49.7% relative to #480 Recording test results Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 [description-setter] Description set: ZOOKEEPER-2280 Putting comment on the pull request Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Email was triggered for: Failure - Any Sending email for trigger: Failure - Any Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 ### ## FAILED TESTS (if any) ## 3 tests failed. FAILED: org.apache.zookeeper.server.NettyServerCnxnTest.testMaxClientConnectionsReached Error Message: test timed out after 3 milliseconds Stack Trace: org.junit.runners.model.TestTimedOutException: test timed out after 3 milliseconds at java.util.Collections$SynchronizedCollection.size(Collections.java:1616) at org.apache.zookeeper.server.NettyServerCnxnTest.createAndTestConnections(NettyServerCnxnTest.java:168) at org.apache.zookeeper.server.NettyServerCnxnTest.testMaxClientConnectionsReached(NettyServerCnxnTest.java:106) at org.apache.zookeeper.JUnit4ZKTestRunner$LoggedInvokeMethod.evaluate(JUnit4ZKTestRunner.java:79) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.lang.Thread.run(Thread.java:745) FAILED: org.apache.zookeeper.server.quorum.ReconfigDuringLeaderSyncTest.testDuringLeaderSync Error Message: zoo.cfg.dynamic.next is not deleted. Stack Trace: junit.framework.AssertionFailedError: zoo.cfg.dynamic.next is not deleted. at org.apache.zookeeper.server.quorum.ReconfigDuringLeaderSyncTest.testDuringLeaderSync(ReconfigDuringLeaderSyncTest.java:165) at org.apache.zookeeper.JUnit4ZKTestRunner$LoggedInvokeMethod.evaluate(JUnit4ZKTestRunner.java:79) FAILED: org.apache.zookeeper.test.WatchEventWhenAutoResetTest.testNodeDa
[jira] [Comment Edited] (ZOOKEEPER-2739) maxClientCnxns not working in NettyServerCnxnFactory
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941564#comment-15941564 ] Edward Ribeiro edited comment on ZOOKEEPER-2739 at 3/25/17 4:34 AM: Hi [~vincentpoon], I have created a new PR for ZOOKEEPER-2280 and rebased it to current master. It also applies to branch-3.5, btw. The jira issue has the updated link now. There are two review comments by [~fpj] yet to be addressed (I commented on new PR) and further review/tests. Gonna do that next, so that we can get this patch in asap. Any comment on PR is welcome in the meantime. :) was (Author: eribeiro): Hi [~vincentpoon], I have created a new PR and rebased it to current master. It also applies to branch-3.5. There are two review comments by [~fpj] yet to be addressed (I commented on new PR) and further review/tests. Gonna do that next. Any comment on PR is welcome in the meantime. :) > maxClientCnxns not working in NettyServerCnxnFactory > > > Key: ZOOKEEPER-2739 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2739 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.9, 3.5.0, 3.6.0 >Reporter: Vincent Poon > Attachments: MaxNettyCnxnsTest.patch > > > The maxClientCnxns field isn't being used in NettyServerCnxnFactory, and > therefore the connection limit isn't observed. > See attached test -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2280) NettyServerCnxnFactory doesn't honor maxClientCnxns param
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941565#comment-15941565 ] Hadoop QA commented on ZOOKEEPER-2280: -- +1 overall. GitHub Pull Request Build +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 3 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 3.0.1) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/480//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/480//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/480//console This message is automatically generated. > NettyServerCnxnFactory doesn't honor maxClientCnxns param > - > > Key: ZOOKEEPER-2280 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2280 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.4.6, 3.5.0, 3.5.1 >Reporter: Edward Ribeiro >Assignee: Edward Ribeiro > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-2280.2.patch, ZOOKEEPER-2280.patch > > > Even though NettyServerCnxnFactory has maxClientCnxns (default to 60) it > doesn't enforce this limit in the code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2739) maxClientCnxns not working in NettyServerCnxnFactory
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941564#comment-15941564 ] Edward Ribeiro commented on ZOOKEEPER-2739: --- Hi [~vincentpoon], I have created a new PR and rebased it to current master. It also applies to branch-3.5. There are two review comments by [~fpj] yet to be addressed (I commented on new PR) and further review/tests. Gonna do that next. Any comment on PR is welcome in the meantime. :) > maxClientCnxns not working in NettyServerCnxnFactory > > > Key: ZOOKEEPER-2739 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2739 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.9, 3.5.0, 3.6.0 >Reporter: Vincent Poon > Attachments: MaxNettyCnxnsTest.patch > > > The maxClientCnxns field isn't being used in NettyServerCnxnFactory, and > therefore the connection limit isn't observed. > See attached test -- This message was sent by Atlassian JIRA (v6.3.15#6346)
Success: ZOOKEEPER- PreCommit Build #480
Build: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/480/ ### ## LAST 60 LINES OF THE CONSOLE ### [...truncated 68.81 MB...] [exec] [exec] +1 @author. The patch does not contain any @author tags. [exec] [exec] +1 tests included. The patch appears to include 3 new or modified tests. [exec] [exec] +1 javadoc. The javadoc tool did not generate any warning messages. [exec] [exec] +1 javac. The applied patch does not increase the total number of javac compiler warnings. [exec] [exec] +1 findbugs. The patch does not introduce any new Findbugs (version 3.0.1) warnings. [exec] [exec] +1 release audit. The applied patch does not increase the total number of release audit warnings. [exec] [exec] +1 core tests. The patch passed core unit tests. [exec] [exec] +1 contrib tests. The patch passed contrib unit tests. [exec] [exec] Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/480//testReport/ [exec] Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/480//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html [exec] Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/480//console [exec] [exec] This message is automatically generated. [exec] [exec] [exec] == [exec] == [exec] Adding comment to Jira. [exec] == [exec] == [exec] [exec] [exec] Comment added. [exec] a224741cee626539fae8e29f09a45b29de4e5051 logged out [exec] [exec] [exec] == [exec] == [exec] Finished build. [exec] == [exec] == [exec] [exec] [exec] mv: '/home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/patchprocess' and '/home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/patchprocess' are the same file BUILD SUCCESSFUL Total time: 18 minutes 43 seconds Archiving artifacts Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Recording test results Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 [description-setter] Description set: ZOOKEEPER-2280 Putting comment on the pull request Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Email was triggered for: Success Sending email for trigger: Success Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 ### ## FAILED TESTS (if any) ## All tests passed
[jira] [Commented] (ZOOKEEPER-2280) NettyServerCnxnFactory doesn't honor maxClientCnxns param
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941563#comment-15941563 ] ASF GitHub Bot commented on ZOOKEEPER-2280: --- Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/208#discussion_r108027802 --- Diff: src/java/main/org/apache/zookeeper/server/NettyServerCnxn.java --- @@ -100,11 +101,15 @@ public void close() { + Long.toHexString(sessionId)); } -synchronized (factory.ipMap) { -Set s = -factory.ipMap.get(((InetSocketAddress)channel -.getRemoteAddress()).getAddress()); -s.remove(this); +InetAddress address = ((InetSocketAddress) channel.getRemoteAddress()).getAddress(); +Set s = factory.ipMap.get(address); --- End diff -- TODO: "This management of the ipMap looks like something that should be done by the factory, not the connection. should we move this logic to the factory?" > NettyServerCnxnFactory doesn't honor maxClientCnxns param > - > > Key: ZOOKEEPER-2280 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2280 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.4.6, 3.5.0, 3.5.1 >Reporter: Edward Ribeiro >Assignee: Edward Ribeiro > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-2280.2.patch, ZOOKEEPER-2280.patch > > > Even though NettyServerCnxnFactory has maxClientCnxns (default to 60) it > doesn't enforce this limit in the code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2280) NettyServerCnxnFactory doesn't honor maxClientCnxns param
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941562#comment-15941562 ] ASF GitHub Bot commented on ZOOKEEPER-2280: --- Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/208#discussion_r108027783 --- Diff: src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java --- @@ -109,6 +110,20 @@ public void channelConnected(ChannelHandlerContext ctx, zkServer, NettyServerCnxnFactory.this); ctx.setAttachment(cnxn); +InetAddress addr = ((InetSocketAddress)cnxn.channel.getRemoteAddress()).getAddress(); +Set s = ipMap.get(addr); +if (s != null) { +synchronized (s) { +int cnxncount = s.size(); +if (maxClientCnxns > 0 && cnxncount >= maxClientCnxns) { +LOG.warn("Closed new connection from address {} ({} connections established) - max is {}", +addr, cnxncount, maxClientCnxns); +cnxn.close(); +ctx.getChannel().close().awaitUninterruptibly(); --- End diff -- TODO: double-check that this is the right order of closing cnxn and channel > NettyServerCnxnFactory doesn't honor maxClientCnxns param > - > > Key: ZOOKEEPER-2280 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2280 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.4.6, 3.5.0, 3.5.1 >Reporter: Edward Ribeiro >Assignee: Edward Ribeiro > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-2280.2.patch, ZOOKEEPER-2280.patch > > > Even though NettyServerCnxnFactory has maxClientCnxns (default to 60) it > doesn't enforce this limit in the code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] zookeeper pull request #208: ZOOKEEPER-2280: NettyServerCnxnFactory doesn't ...
Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/208#discussion_r108027802 --- Diff: src/java/main/org/apache/zookeeper/server/NettyServerCnxn.java --- @@ -100,11 +101,15 @@ public void close() { + Long.toHexString(sessionId)); } -synchronized (factory.ipMap) { -Set s = -factory.ipMap.get(((InetSocketAddress)channel -.getRemoteAddress()).getAddress()); -s.remove(this); +InetAddress address = ((InetSocketAddress) channel.getRemoteAddress()).getAddress(); +Set s = factory.ipMap.get(address); --- End diff -- TODO: "This management of the ipMap looks like something that should be done by the factory, not the connection. should we move this logic to the factory?" --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] zookeeper pull request #208: ZOOKEEPER-2280: NettyServerCnxnFactory doesn't ...
Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/208#discussion_r108027783 --- Diff: src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java --- @@ -109,6 +110,20 @@ public void channelConnected(ChannelHandlerContext ctx, zkServer, NettyServerCnxnFactory.this); ctx.setAttachment(cnxn); +InetAddress addr = ((InetSocketAddress)cnxn.channel.getRemoteAddress()).getAddress(); +Set s = ipMap.get(addr); +if (s != null) { +synchronized (s) { +int cnxncount = s.size(); +if (maxClientCnxns > 0 && cnxncount >= maxClientCnxns) { +LOG.warn("Closed new connection from address {} ({} connections established) - max is {}", +addr, cnxncount, maxClientCnxns); +cnxn.close(); +ctx.getChannel().close().awaitUninterruptibly(); --- End diff -- TODO: double-check that this is the right order of closing cnxn and channel --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (ZOOKEEPER-2280) NettyServerCnxnFactory doesn't honor maxClientCnxns param
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941558#comment-15941558 ] ASF GitHub Bot commented on ZOOKEEPER-2280: --- Github user eribeiro commented on the issue: https://github.com/apache/zookeeper/pull/77 Closing this PR as the patch has moved to https://github.com/apache/zookeeper/pull/208 (still needs to address review comments tough). > NettyServerCnxnFactory doesn't honor maxClientCnxns param > - > > Key: ZOOKEEPER-2280 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2280 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.4.6, 3.5.0, 3.5.1 >Reporter: Edward Ribeiro >Assignee: Edward Ribeiro > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-2280.2.patch, ZOOKEEPER-2280.patch > > > Even though NettyServerCnxnFactory has maxClientCnxns (default to 60) it > doesn't enforce this limit in the code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2280) NettyServerCnxnFactory doesn't honor maxClientCnxns param
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941559#comment-15941559 ] ASF GitHub Bot commented on ZOOKEEPER-2280: --- Github user eribeiro closed the pull request at: https://github.com/apache/zookeeper/pull/77 > NettyServerCnxnFactory doesn't honor maxClientCnxns param > - > > Key: ZOOKEEPER-2280 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2280 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.4.6, 3.5.0, 3.5.1 >Reporter: Edward Ribeiro >Assignee: Edward Ribeiro > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-2280.2.patch, ZOOKEEPER-2280.patch > > > Even though NettyServerCnxnFactory has maxClientCnxns (default to 60) it > doesn't enforce this limit in the code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] zookeeper pull request #77: ZOOKEEPER-2280: NettyServerCnxnFactory doesn't i...
Github user eribeiro closed the pull request at: https://github.com/apache/zookeeper/pull/77 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] zookeeper issue #77: ZOOKEEPER-2280: NettyServerCnxnFactory doesn't implemen...
Github user eribeiro commented on the issue: https://github.com/apache/zookeeper/pull/77 Closing this PR as the patch has moved to https://github.com/apache/zookeeper/pull/208 (still needs to address review comments tough). --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (ZOOKEEPER-2280) NettyServerCnxnFactory doesn't honor maxClientCnxns param
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941557#comment-15941557 ] ASF GitHub Bot commented on ZOOKEEPER-2280: --- GitHub user eribeiro opened a pull request: https://github.com/apache/zookeeper/pull/208 ZOOKEEPER-2280: NettyServerCnxnFactory doesn't implement maxClientCnxns You can merge this pull request into a Git repository by running: $ git pull https://github.com/eribeiro/zookeeper ZOOKEEPER-2280 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/zookeeper/pull/208.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #208 commit ceaa5a2f0cf851620a6e61a84e597d30d42da131 Author: Edward Ribeiro Date: 2017-03-25T03:59:12Z ZOOKEEPER-2280: NettyServerCnxnFactory doesn't implement maxClientCnxns > NettyServerCnxnFactory doesn't honor maxClientCnxns param > - > > Key: ZOOKEEPER-2280 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2280 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.4.6, 3.5.0, 3.5.1 >Reporter: Edward Ribeiro >Assignee: Edward Ribeiro > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-2280.2.patch, ZOOKEEPER-2280.patch > > > Even though NettyServerCnxnFactory has maxClientCnxns (default to 60) it > doesn't enforce this limit in the code. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] zookeeper pull request #208: ZOOKEEPER-2280: NettyServerCnxnFactory doesn't ...
GitHub user eribeiro opened a pull request: https://github.com/apache/zookeeper/pull/208 ZOOKEEPER-2280: NettyServerCnxnFactory doesn't implement maxClientCnxns You can merge this pull request into a Git repository by running: $ git pull https://github.com/eribeiro/zookeeper ZOOKEEPER-2280 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/zookeeper/pull/208.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #208 commit ceaa5a2f0cf851620a6e61a84e597d30d42da131 Author: Edward Ribeiro Date: 2017-03-25T03:59:12Z ZOOKEEPER-2280: NettyServerCnxnFactory doesn't implement maxClientCnxns --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (ZOOKEEPER-2739) maxClientCnxns not working in NettyServerCnxnFactory
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941545#comment-15941545 ] Vincent Poon commented on ZOOKEEPER-2739: - [~eribeiro] Looks like you had a working patch and just needed a rebase! If you can get that in, I can put in the rate limiter in ZOOKEEPER-2736 on top. And thanks for your review on that btw, still working on the revision. > maxClientCnxns not working in NettyServerCnxnFactory > > > Key: ZOOKEEPER-2739 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2739 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.9, 3.5.0, 3.6.0 >Reporter: Vincent Poon > Attachments: MaxNettyCnxnsTest.patch > > > The maxClientCnxns field isn't being used in NettyServerCnxnFactory, and > therefore the connection limit isn't observed. > See attached test -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (ZOOKEEPER-2659) Use log4j2 as a logging framework as log4j 1.X is now deprecated
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941510#comment-15941510 ] Edward Ribeiro edited comment on ZOOKEEPER-2659 at 3/25/17 2:49 AM: Hey [~praste], I am no committer, but I see that you have invested *a lot* of work on this. This has been the subject of a previous and unfinished JIRA issue, ZOOKEEPER-2342, so definitely there is an interest on this matter. Wouldn't you like to reopen this jira issue and the PR you made, so that others in the community can take a look? I will take the liberty to ping some ZK committers -- [~arshadmohammad], [~hanm] so that they can take a look when/if they have a spare cycles. I hope you don't mind guys! I know you are pretty busy, but migrating to newer versions of log4j is a must have for future ZK versions, imo. Cheers! was (Author: eribeiro): Hey [~praste], I am no committer, but I see that you have invested *a lot* of work on this. This has been the subject of a previous and unfinished JIRA issue, ZOOKEEPER-2342, so definitely there is an interest on this matter. Wouldn't you like to reopen the PR you made, so that others in the community can take a look? I will take the liberty to ping some ZK committers -- [~arshadmohammad], [~hanm] so that they can take a look when/if they have a spare cycles. I hope you don't mind guys! I know you are pretty busy, but migrating to newer versions of log4j is a must have for future ZK versions, imo. Cheers! > Use log4j2 as a logging framework as log4j 1.X is now deprecated > > > Key: ZOOKEEPER-2659 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2659 > Project: ZooKeeper > Issue Type: Wish >Reporter: Pushkar Raste >Assignee: Pushkar Raste >Priority: Minor > Attachments: zk_log4j2_migration.patch > > > Zookeeper currently uses {{log4j 1.X}} as the default logging framework. > {{log4j 1.X}} is now deprecated http://logging.apache.org/log4j/1.2/ > This ticket is to track efforts to move zookeeper to {{log4j2}} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2659) Use log4j2 as a logging framework as log4j 1.X is now deprecated
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941513#comment-15941513 ] Matt Sicker commented on ZOOKEEPER-2659: Mikael and I are developers on log4j2, and we're here to help as well! > Use log4j2 as a logging framework as log4j 1.X is now deprecated > > > Key: ZOOKEEPER-2659 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2659 > Project: ZooKeeper > Issue Type: Wish >Reporter: Pushkar Raste >Assignee: Pushkar Raste >Priority: Minor > Attachments: zk_log4j2_migration.patch > > > Zookeeper currently uses {{log4j 1.X}} as the default logging framework. > {{log4j 1.X}} is now deprecated http://logging.apache.org/log4j/1.2/ > This ticket is to track efforts to move zookeeper to {{log4j2}} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2659) Use log4j2 as a logging framework as log4j 1.X is now deprecated
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941510#comment-15941510 ] Edward Ribeiro commented on ZOOKEEPER-2659: --- Hey [~praste], I am no committer, but I see that you have invested *a lot* of work on this. This has been the subject of a previous and unfinished JIRA issue, ZOOKEEPER-2342, so definitely there is an interest on this matter. Wouldn't you like to reopen the PR you made, so that others in the community can take a look? I will take the liberty to ping some ZK committers -- [~arshadmohammad], [~hanm] so that they can take a look when/if they have a spare cycles. I hope you don't mind guys! I know you are pretty busy, but migrating to newer versions of log4j is a must have for future ZK versions, imo. Cheers! > Use log4j2 as a logging framework as log4j 1.X is now deprecated > > > Key: ZOOKEEPER-2659 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2659 > Project: ZooKeeper > Issue Type: Wish >Reporter: Pushkar Raste >Assignee: Pushkar Raste >Priority: Minor > Attachments: zk_log4j2_migration.patch > > > Zookeeper currently uses {{log4j 1.X}} as the default logging framework. > {{log4j 1.X}} is now deprecated http://logging.apache.org/log4j/1.2/ > This ticket is to track efforts to move zookeeper to {{log4j2}} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2739) maxClientCnxns not working in NettyServerCnxnFactory
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941485#comment-15941485 ] Edward Ribeiro commented on ZOOKEEPER-2739: --- Hi [~vincentpoon], I started working on this exact same issue long before, but got side tracked by other commitments. Let's chat! ;) > maxClientCnxns not working in NettyServerCnxnFactory > > > Key: ZOOKEEPER-2739 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2739 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.9, 3.5.0, 3.6.0 >Reporter: Vincent Poon > Attachments: MaxNettyCnxnsTest.patch > > > The maxClientCnxns field isn't being used in NettyServerCnxnFactory, and > therefore the connection limit isn't observed. > See attached test -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (ZOOKEEPER-2739) maxClientCnxns not working in NettyServerCnxnFactory
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2739?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vincent Poon updated ZOOKEEPER-2739: Attachment: MaxNettyCnxnsTest.patch > maxClientCnxns not working in NettyServerCnxnFactory > > > Key: ZOOKEEPER-2739 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2739 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.9, 3.5.0, 3.6.0 >Reporter: Vincent Poon > Attachments: MaxNettyCnxnsTest.patch > > > The maxClientCnxns field isn't being used in NettyServerCnxnFactory, and > therefore the connection limit isn't observed. > See attached test -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (ZOOKEEPER-2739) maxClientCnxns not working in NettyServerCnxnFactory
Vincent Poon created ZOOKEEPER-2739: --- Summary: maxClientCnxns not working in NettyServerCnxnFactory Key: ZOOKEEPER-2739 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2739 Project: ZooKeeper Issue Type: Bug Affects Versions: 3.5.0, 3.4.9, 3.6.0 Reporter: Vincent Poon Attachments: MaxNettyCnxnsTest.patch The maxClientCnxns field isn't being used in NettyServerCnxnFactory, and therefore the connection limit isn't observed. See attached test -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (ZOOKEEPER-2738) maxClientCnxns not limiting concurrent connections properly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2738?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vincent Poon updated ZOOKEEPER-2738: Attachment: MaxCnxnsTest.patch > maxClientCnxns not limiting concurrent connections properly > --- > > Key: ZOOKEEPER-2738 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2738 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.5.2, 3.6.0 >Reporter: Vincent Poon > Attachments: MaxCnxnsTest.patch > > > The test MaxCnxnsTest is incorrect as it only creates up the maxCnxns number > of threads, whereas it should create more. See attached patch > When the test is fixed, it fails on master and 3.5, where ZOOKEEPER-1504 > removed some synchronization. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (ZOOKEEPER-2738) maxClientCnxns not limiting concurrent connections properly
Vincent Poon created ZOOKEEPER-2738: --- Summary: maxClientCnxns not limiting concurrent connections properly Key: ZOOKEEPER-2738 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2738 Project: ZooKeeper Issue Type: Bug Affects Versions: 3.5.2, 3.6.0 Reporter: Vincent Poon The test MaxCnxnsTest is incorrect as it only creates up the maxCnxns number of threads, whereas it should create more. See attached patch When the test is fixed, it fails on master and 3.5, where ZOOKEEPER-1504 removed some synchronization. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
Re: [VOTE] Apache ZooKeeper release 3.4.10 candidate 1
+1 non-binding - Checked md5sum and pgp signature on tarball and jar - Built from source with java 6 and 7 - ran unit tests - manually verified functionality on small 3 node ensemble On Thu, Mar 23, 2017, at 05:40, Rakesh Radhakrishnan wrote: > This is the second release candidate for 3.4.10. This candidate fixed the > MiniKDC authentication test case failures reported in the previous > candidate. > > This is a bug fix release candidate for 3.4.10. It fixes 43 issues, > including > security feature QuorumPeer mutual authentication via SASL and other > potential bugs. > > The full release notes are available at: > > https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310801&version=12338036 > > *** Please download, test and vote by March 29th 2017, 23:59 UTC+0. *** > > Source files: > http://people.apache.org/~rakeshr/zookeeper-3.4.10-candidate-1/ > > Maven staging repo: > https://repository.apache.org/content/groups/staging/org/apache/zookeeper/zookeeper/3.4.10/ > > The release candidate tag in git to be voted upon: release-3.4.10-rc1 > https://github.com/apache/zookeeper/tree/release-3.4.10-rc1 > > ZooKeeper's KEYS file containing PGP keys we use to sign the release: > http://www.apache.org/dist/zookeeper/KEYS > > Should we release this candidate? > > > Rakesh
[jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941242#comment-15941242 ] ASF GitHub Bot commented on ZOOKEEPER-2736: --- Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r108010303 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; +} + +@Override +public boolean tryAquire() { +refill(); +long current = tokens.get(); +while (current > 0) { +if (tokens.compareAndSet(current, current - 1)) { +return true; +} +current = tokens.get(); +} +return false; +} + +private void refill() { +long currentTime = System.nanoTime(); +if (currentTime >= nextRefillTime) { +synchronized (this) { +if (currentTime >= nextRefillTime) { +long elapsedNanos = currentTime - nextRefillTime + refreshPeriodNanos; +long elapsedPeriods = elapsedNanos / refreshPeriodNanos; +long newTokens = elapsedPeriods * tokensPerPeriod; +tokens.set(Math.min(capacity, tokens.get() + newTokens)); +nextRefillTime = currentTime + refreshPeriodNanos - (elapsedNanos % refreshPeriodNanos); +} +} +} +} + +// VisibleForTesting +long getTokenCount() { --- End diff -- +1. > Add a connection rate limiter > - > > Key: ZOOKEEPER-2736 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736 > Project: ZooKeeper > Issue Type: Improvement > Components: server >Affects Versions: 3.4.9, 3.5.2 >Reporter: Vincent Poon > Attachments: ZOOKEEPER-2736.v1.patch > > > Currently the maxClientCnxns property only limits the aggregate number of > connections from a client, but not the rate at which connections can be > created. > This patch adds a configurable connection rate limiter which limits the rate > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] zookeeper pull request #205: ZOOKEEPER-2736 Add a connection rate limiter
Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r108010303 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; +} + +@Override +public boolean tryAquire() { +refill(); +long current = tokens.get(); +while (current > 0) { +if (tokens.compareAndSet(current, current - 1)) { +return true; +} +current = tokens.get(); +} +return false; +} + +private void refill() { +long currentTime = System.nanoTime(); +if (currentTime >= nextRefillTime) { +synchronized (this) { +if (currentTime >= nextRefillTime) { +long elapsedNanos = currentTime - nextRefillTime + refreshPeriodNanos; +long elapsedPeriods = elapsedNanos / refreshPeriodNanos; +long newTokens = elapsedPeriods * tokensPerPeriod; +tokens.set(Math.min(capacity, tokens.get() + newTokens)); +nextRefillTime = currentTime + refreshPeriodNanos - (elapsedNanos % refreshPeriodNanos); +} +} +} +} + +// VisibleForTesting +long getTokenCount() { --- End diff -- +1. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941241#comment-15941241 ] ASF GitHub Bot commented on ZOOKEEPER-2736: --- Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r108009883 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; +} + +@Override +public boolean tryAquire() { --- End diff -- +1. > Add a connection rate limiter > - > > Key: ZOOKEEPER-2736 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736 > Project: ZooKeeper > Issue Type: Improvement > Components: server >Affects Versions: 3.4.9, 3.5.2 >Reporter: Vincent Poon > Attachments: ZOOKEEPER-2736.v1.patch > > > Currently the maxClientCnxns property only limits the aggregate number of > connections from a client, but not the rate at which connections can be > created. > This patch adds a configurable connection rate limiter which limits the rate > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941239#comment-15941239 ] ASF GitHub Bot commented on ZOOKEEPER-2736: --- Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r108009773 --- Diff: src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml --- @@ -845,6 +845,40 @@ server.3=zoo3:2888:3888 +rateLimiterImpl + + (No Java system property) + + Specifies an implementation of + org.apache.zookeeper.common.RateLimiter to use to limit the rate + at which a single client, identified by IP address, can make + connections to a single member of the ZooKeeper ensemble. + + + + +maxClientCnxnRate --- End diff -- +1 on that. :+1: > Add a connection rate limiter > - > > Key: ZOOKEEPER-2736 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736 > Project: ZooKeeper > Issue Type: Improvement > Components: server >Affects Versions: 3.4.9, 3.5.2 >Reporter: Vincent Poon > Attachments: ZOOKEEPER-2736.v1.patch > > > Currently the maxClientCnxns property only limits the aggregate number of > connections from a client, but not the rate at which connections can be > created. > This patch adds a configurable connection rate limiter which limits the rate > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] zookeeper pull request #205: ZOOKEEPER-2736 Add a connection rate limiter
Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r108009883 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; +} + +@Override +public boolean tryAquire() { --- End diff -- +1. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] zookeeper pull request #205: ZOOKEEPER-2736 Add a connection rate limiter
Github user eribeiro commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r108009773 --- Diff: src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml --- @@ -845,6 +845,40 @@ server.3=zoo3:2888:3888 +rateLimiterImpl + + (No Java system property) + + Specifies an implementation of + org.apache.zookeeper.common.RateLimiter to use to limit the rate + at which a single client, identified by IP address, can make + connections to a single member of the ZooKeeper ensemble. + + + + +maxClientCnxnRate --- End diff -- +1 on that. :+1: --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (ZOOKEEPER-236) SSL Support for Atomic Broadcast protocol
[ https://issues.apache.org/jira/browse/ZOOKEEPER-236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15941170#comment-15941170 ] Abraham Fine commented on ZOOKEEPER-236: I found that org.apache.httpcomponents.httpclient has org.apache.http.conn.ssl.DefaultHostnameVerifier which should serve our purposes well. > SSL Support for Atomic Broadcast protocol > - > > Key: ZOOKEEPER-236 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-236 > Project: ZooKeeper > Issue Type: New Feature > Components: quorum, server >Reporter: Benjamin Reed >Assignee: Abraham Fine >Priority: Minor > > We should have the ability to use SSL to authenticate and encrypt the traffic > between ZooKeeper servers. For the most part this is a very easy change. We > would probably only want to support this for TCP based leader elections. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
Failed: ZOOKEEPER- PreCommit Build #479
Build: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/479/ ### ## LAST 60 LINES OF THE CONSOLE ### [...truncated 3.15 KB...] [exec] Pull request id: 184 % Total% Received % Xferd Average Speed TimeTime Time Current [exec] [exec] Pull request title: ZOOKEEPER-236: SSL Support for Atomic Broadcast protocol [DO NOT MERGE] [exec] Defect number: ZOOKEEPER-236 [exec] - Parsed args, going to checkout - [exec] [exec] [exec] == [exec] == [exec] Testing patch for pull request 184. [exec] == [exec] == [exec] [exec] [exec] [exec] Dload Upload Total Spent Left Speed [exec] [exec] 0 00 00 0 0 0 --:--:-- --:--:-- --:--:-- 0100 1410 1410 0321 0 --:--:-- --:--:-- --:--:-- 321 [exec] [exec] [exec] == [exec] == [exec] Pre-build trunk to verify trunk stability and javac warnings [exec] == [exec] == [exec] [exec] [exec] /home/jenkins/tools/ant/apache-ant-1.9.9/bin/ant -Djavac.args=-Xlint -Xmaxwarns 1000 -Djava5.home=/home/jenkins/tools/java5/latest -Dforrest.home=/home/jenkins/tools/forrest/latest -DZookeeperPatchProcess= clean tar > /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/patchprocess/trunkJavacWarnings.txt 2>&1 [exec] Trunk compilation is broken? [exec] [exec] [exec] == [exec] == [exec] Finished build. [exec] == [exec] == [exec] [exec] [exec] 0 00 00 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 00 625550 0 53915 0 --:--:-- 0:00:01 --:--:-- 374kmv: ‘/home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/patchprocess’ and ‘/home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/patchprocess’ are the same file BUILD FAILED /home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/build.xml:1642: exec returned: 1 Total time: 21 seconds Build step 'Execute shell' marked build as failure Archiving artifacts Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Recording test results Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 ERROR: Step ‘Publish JUnit test result report’ failed: No test report files were found. Configuration error? Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 [description-setter] Description set: ZOOKEEPER-236 Putting comment on the pull request Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Email was triggered for: Failure - Any Sending email for trigger: Failure - Any Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 ### ## FAILED TESTS (if any) ## No tests ran.
[jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940941#comment-15940941 ] ASF GitHub Bot commented on ZOOKEEPER-2736: --- Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107973008 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; +} + +@Override +public boolean tryAquire() { +refill(); +long current = tokens.get(); +while (current > 0) { +if (tokens.compareAndSet(current, current - 1)) { +return true; +} +current = tokens.get(); +} +return false; +} + +private void refill() { +long currentTime = System.nanoTime(); +if (currentTime >= nextRefillTime) { +synchronized (this) { +if (currentTime >= nextRefillTime) { +long elapsedNanos = currentTime - nextRefillTime + refreshPeriodNanos; +long elapsedPeriods = elapsedNanos / refreshPeriodNanos; +long newTokens = elapsedPeriods * tokensPerPeriod; +tokens.set(Math.min(capacity, tokens.get() + newTokens)); +nextRefillTime = currentTime + refreshPeriodNanos - (elapsedNanos % refreshPeriodNanos); +} +} +} +} + +// VisibleForTesting +long getTokenCount() { --- End diff -- nit: I think we generally prefer to explicitly state the access modifiers. > Add a connection rate limiter > - > > Key: ZOOKEEPER-2736 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736 > Project: ZooKeeper > Issue Type: Improvement > Components: server >Affects Versions: 3.4.9, 3.5.2 >Reporter: Vincent Poon > Attachments: ZOOKEEPER-2736.v1.patch > > > Currently the maxClientCnxns property only limits the aggregate number of > connections from a client, but not the rate at which connections can be > created. > This patch adds a configurable connection rate limiter which limits the rate > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940938#comment-15940938 ] ASF GitHub Bot commented on ZOOKEEPER-2736: --- Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107965500 --- Diff: src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml --- @@ -845,6 +845,40 @@ server.3=zoo3:2888:3888 +rateLimiterImpl + + (No Java system property) + + Specifies an implementation of + org.apache.zookeeper.common.RateLimiter to use to limit the rate + at which a single client, identified by IP address, can make + connections to a single member of the ZooKeeper ensemble. + + + + +maxClientCnxnRate --- End diff -- Would it make sense to tie this configuration to the implementation that is being used, rather than specifying at the top level what configuration is needed for the rate limiter? > Add a connection rate limiter > - > > Key: ZOOKEEPER-2736 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736 > Project: ZooKeeper > Issue Type: Improvement > Components: server >Affects Versions: 3.4.9, 3.5.2 >Reporter: Vincent Poon > Attachments: ZOOKEEPER-2736.v1.patch > > > Currently the maxClientCnxns property only limits the aggregate number of > connections from a client, but not the rate at which connections can be > created. > This patch adds a configurable connection rate limiter which limits the rate > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940937#comment-15940937 ] ASF GitHub Bot commented on ZOOKEEPER-2736: --- Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107976351 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; +} + +@Override +public boolean tryAquire() { --- End diff -- would things be easier if we just made this synchronized? > Add a connection rate limiter > - > > Key: ZOOKEEPER-2736 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736 > Project: ZooKeeper > Issue Type: Improvement > Components: server >Affects Versions: 3.4.9, 3.5.2 >Reporter: Vincent Poon > Attachments: ZOOKEEPER-2736.v1.patch > > > Currently the maxClientCnxns property only limits the aggregate number of > connections from a client, but not the rate at which connections can be > created. > This patch adds a configurable connection rate limiter which limits the rate > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940939#comment-15940939 ] ASF GitHub Bot commented on ZOOKEEPER-2736: --- Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107974422 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; --- End diff -- nit: do we need nano seconds? can we just use org.apache.zookeeper.common.Time.currentElapsedTime() ? > Add a connection rate limiter > - > > Key: ZOOKEEPER-2736 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736 > Project: ZooKeeper > Issue Type: Improvement > Components: server >Affects Versions: 3.4.9, 3.5.2 >Reporter: Vincent Poon > Attachments: ZOOKEEPER-2736.v1.patch > > > Currently the maxClientCnxns property only limits the aggregate number of > connections from a client, but not the rate at which connections can be > created. > This patch adds a configurable connection rate limiter which limits the rate > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940942#comment-15940942 ] ASF GitHub Bot commented on ZOOKEEPER-2736: --- Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107973811 --- Diff: src/java/main/org/apache/zookeeper/common/RateLimiter.java --- @@ -0,0 +1,99 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package org.apache.zookeeper.common; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * A connection rate limiter. + * + */ +public interface RateLimiter { + +/** + * If maxClientCnxnRate or maxClientCnxnBurst is set to this value, rate is + * not limited + */ +public static int BYPASS = -1; + +/** + * A {@code RateLimiter} that does not do any rate limiting + */ +public static RateLimiter BYPASS_RATE_LIMITER = new RateLimiter() { +@Override +public boolean tryAquire() { +return true; +} + +@Override +public void configure(int maxClientCnxnRate, int maxClientCnxnBurst) { +//not needed +} +}; + +/** + * Attempts to acquire a permit + * + * @return true if a permit was acquired, false otherwise + */ +public boolean tryAquire(); + +/** + * @param maxClientCnxnRate the max client connection rate + * @param maxClientCnxnBurst the max client connection burst + */ +public void configure(int maxClientCnxnRate, int maxClientCnxnBurst); + +public static class Factory { + +private static final Logger LOG = LoggerFactory.getLogger(RateLimiter.Factory.class); + +/** + * Creates a {@code RateLimiter} with a stable average throughput of + * {@code averageRate} and a maximum burst size of {@code burstRate} + * + * @param rateLimiterImplClass the {@code RateLimiter} implementation to use + * @param burstSize + *The maximum burst size - i.e. max number of permits that + *can be acquired in a second + * @param averageRate + *The stable average rate in permits per second + * @return the {@code RateLimiter} + */ +public static RateLimiter create(String rateLimiterImplClass, int burstSize, +int averageRate) { +if (burstSize == BYPASS || averageRate == BYPASS) { +return BYPASS_RATE_LIMITER; +} +if (rateLimiterImplClass == null) { +rateLimiterImplClass = TokenBucket.class.getName(); +} +try { +RateLimiter limiter = (RateLimiter) Class.forName(rateLimiterImplClass).newInstance(); --- End diff -- it would be great to log which ratelimiter has been chosen > Add a connection rate limiter > - > > Key: ZOOKEEPER-2736 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736 > Project: ZooKeeper > Issue Type: Improvement > Components: server >Affects Versions: 3.4.9, 3.5.2 >Reporter: Vincent Poon > Attachments: ZOOKEEPER-2736.v1.patch > > > Currently the maxClientCnxns property only limits the aggregate number of > connections from a client, but not the rate at which connections can be > created. > This patch adds a configurable connection rate limiter which limits the rate > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940940#comment-15940940 ] ASF GitHub Bot commented on ZOOKEEPER-2736: --- Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107974911 --- Diff: src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java --- @@ -39,6 +39,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.LinkedBlockingQueue; +import org.apache.zookeeper.common.RateLimiter; --- End diff -- +1 to this > Add a connection rate limiter > - > > Key: ZOOKEEPER-2736 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736 > Project: ZooKeeper > Issue Type: Improvement > Components: server >Affects Versions: 3.4.9, 3.5.2 >Reporter: Vincent Poon > Attachments: ZOOKEEPER-2736.v1.patch > > > Currently the maxClientCnxns property only limits the aggregate number of > connections from a client, but not the rate at which connections can be > created. > This patch adds a configurable connection rate limiter which limits the rate > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] zookeeper pull request #205: ZOOKEEPER-2736 Add a connection rate limiter
Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107973811 --- Diff: src/java/main/org/apache/zookeeper/common/RateLimiter.java --- @@ -0,0 +1,99 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package org.apache.zookeeper.common; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * A connection rate limiter. + * + */ +public interface RateLimiter { + +/** + * If maxClientCnxnRate or maxClientCnxnBurst is set to this value, rate is + * not limited + */ +public static int BYPASS = -1; + +/** + * A {@code RateLimiter} that does not do any rate limiting + */ +public static RateLimiter BYPASS_RATE_LIMITER = new RateLimiter() { +@Override +public boolean tryAquire() { +return true; +} + +@Override +public void configure(int maxClientCnxnRate, int maxClientCnxnBurst) { +//not needed +} +}; + +/** + * Attempts to acquire a permit + * + * @return true if a permit was acquired, false otherwise + */ +public boolean tryAquire(); + +/** + * @param maxClientCnxnRate the max client connection rate + * @param maxClientCnxnBurst the max client connection burst + */ +public void configure(int maxClientCnxnRate, int maxClientCnxnBurst); + +public static class Factory { + +private static final Logger LOG = LoggerFactory.getLogger(RateLimiter.Factory.class); + +/** + * Creates a {@code RateLimiter} with a stable average throughput of + * {@code averageRate} and a maximum burst size of {@code burstRate} + * + * @param rateLimiterImplClass the {@code RateLimiter} implementation to use + * @param burstSize + *The maximum burst size - i.e. max number of permits that + *can be acquired in a second + * @param averageRate + *The stable average rate in permits per second + * @return the {@code RateLimiter} + */ +public static RateLimiter create(String rateLimiterImplClass, int burstSize, +int averageRate) { +if (burstSize == BYPASS || averageRate == BYPASS) { +return BYPASS_RATE_LIMITER; +} +if (rateLimiterImplClass == null) { +rateLimiterImplClass = TokenBucket.class.getName(); +} +try { +RateLimiter limiter = (RateLimiter) Class.forName(rateLimiterImplClass).newInstance(); --- End diff -- it would be great to log which ratelimiter has been chosen --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] zookeeper pull request #205: ZOOKEEPER-2736 Add a connection rate limiter
Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107965500 --- Diff: src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml --- @@ -845,6 +845,40 @@ server.3=zoo3:2888:3888 +rateLimiterImpl + + (No Java system property) + + Specifies an implementation of + org.apache.zookeeper.common.RateLimiter to use to limit the rate + at which a single client, identified by IP address, can make + connections to a single member of the ZooKeeper ensemble. + + + + +maxClientCnxnRate --- End diff -- Would it make sense to tie this configuration to the implementation that is being used, rather than specifying at the top level what configuration is needed for the rate limiter? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] zookeeper pull request #205: ZOOKEEPER-2736 Add a connection rate limiter
Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107973008 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; +} + +@Override +public boolean tryAquire() { +refill(); +long current = tokens.get(); +while (current > 0) { +if (tokens.compareAndSet(current, current - 1)) { +return true; +} +current = tokens.get(); +} +return false; +} + +private void refill() { +long currentTime = System.nanoTime(); +if (currentTime >= nextRefillTime) { +synchronized (this) { +if (currentTime >= nextRefillTime) { +long elapsedNanos = currentTime - nextRefillTime + refreshPeriodNanos; +long elapsedPeriods = elapsedNanos / refreshPeriodNanos; +long newTokens = elapsedPeriods * tokensPerPeriod; +tokens.set(Math.min(capacity, tokens.get() + newTokens)); +nextRefillTime = currentTime + refreshPeriodNanos - (elapsedNanos % refreshPeriodNanos); +} +} +} +} + +// VisibleForTesting +long getTokenCount() { --- End diff -- nit: I think we generally prefer to explicitly state the access modifiers. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] zookeeper pull request #205: ZOOKEEPER-2736 Add a connection rate limiter
Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107976351 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; +} + +@Override +public boolean tryAquire() { --- End diff -- would things be easier if we just made this synchronized? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] zookeeper pull request #205: ZOOKEEPER-2736 Add a connection rate limiter
Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107974422 --- Diff: src/java/main/org/apache/zookeeper/common/TokenBucket.java --- @@ -0,0 +1,88 @@ +/** +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +package org.apache.zookeeper.common; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Simple rate limiter based on a token bucket. + */ +public class TokenBucket implements RateLimiter { + +// VisibleForTesting +long refreshPeriodNanos = TimeUnit.SECONDS.toNanos(1L); +// VisibleForTesting +volatile long nextRefillTime; +private AtomicLong tokens; +private long capacity; +private long tokensPerPeriod; + +public TokenBucket() { } + +// VisibleForTesting +public TokenBucket(long capacity, long tokensPerSecond, long initialTokens) { +this.tokens = new AtomicLong(initialTokens); +this.capacity = Math.max(capacity, tokensPerSecond); +this.tokensPerPeriod = tokensPerSecond; +this.nextRefillTime = System.nanoTime() + refreshPeriodNanos; --- End diff -- nit: do we need nano seconds? can we just use org.apache.zookeeper.common.Time.currentElapsedTime() ? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] zookeeper pull request #205: ZOOKEEPER-2736 Add a connection rate limiter
Github user afine commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/205#discussion_r107974911 --- Diff: src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java --- @@ -39,6 +39,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.LinkedBlockingQueue; +import org.apache.zookeeper.common.RateLimiter; --- End diff -- +1 to this --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (ZOOKEEPER-900) FLE implementation should be improved to use non-blocking sockets
[ https://issues.apache.org/jira/browse/ZOOKEEPER-900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940894#comment-15940894 ] Atri Sharma commented on ZOOKEEPER-900: --- Could you please reassign it to me/ point me to another JIRA is this umbrella? > FLE implementation should be improved to use non-blocking sockets > - > > Key: ZOOKEEPER-900 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-900 > Project: ZooKeeper > Issue Type: Bug >Reporter: Vishal Kher >Assignee: Martin Kuchta >Priority: Critical > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-900-part2.patch, ZOOKEEPER-900.patch, > ZOOKEEPER-900.patch1, ZOOKEEPER-900.patch2 > > > From earlier email exchanges: > 1. Blocking connects and accepts: > a) The first problem is in manager.toSend(). This invokes connectOne(), which > does a blocking connect. While testing, I changed the code so that > connectOne() starts a new thread called AsyncConnct(). AsyncConnect.run() > does a socketChannel.connect(). After starting AsyncConnect, connectOne > starts a timer. connectOne continues with normal operations if the connection > is established before the timer expires, otherwise, when the timer expires it > interrupts AsyncConnect() thread and returns. In this way, I can have an > upper bound on the amount of time we need to wait for connect to succeed. Of > course, this was a quick fix for my testing. Ideally, we should use Selector > to do non-blocking connects/accepts. I am planning to do that later once we > at least have a quick fix for the problem and consensus from others for the > real fix (this problem is big blocker for us). Note that it is OK to do > blocking IO in SenderWorker and RecvWorker threads since they block IO to the > respective peer. > b) The blocking IO problem is not just restricted to connectOne(), but also > in receiveConnection(). The Listener thread calls receiveConnection() for > each incoming connection request. receiveConnection does blocking IO to get > peer's info (s.read(msgBuffer)). Worse, it invokes connectOne() back to the > peer that had sent the connection request. All of this is happening from the > Listener. In short, if a peer fails after initiating a connection, the > Listener thread won't be able to accept connections from other peers, because > it would be stuck in read() or connetOne(). Also the code has an inherent > cycle. initiateConnection() and receiveConnection() will have to be very > carefully synchronized otherwise, we could run into deadlocks. This code is > going to be difficult to maintain/modify. > Also see: https://issues.apache.org/jira/browse/ZOOKEEPER-822 -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2737) NettyServerCnxFactory leaks connection if exception happens while writing to a channel.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940855#comment-15940855 ] ASF GitHub Bot commented on ZOOKEEPER-2737: --- Github user enixon commented on the issue: https://github.com/apache/zookeeper/pull/207 good catch! > NettyServerCnxFactory leaks connection if exception happens while writing to > a channel. > --- > > Key: ZOOKEEPER-2737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2737 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.5.2 >Reporter: Michael Han >Assignee: Michael Han >Priority: Critical > Labels: connection, netty, server > > Found this while debugging occasionally failed unit tests. Currently we do > this if exception occurs during writing to a channel with Netty: > {code} > @Override > public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent > e) > throws Exception > { > LOG.warn("Exception caught " + e, e.getCause()); > NettyServerCnxn cnxn = (NettyServerCnxn) ctx.getAttachment(); > if (cnxn != null) { > if (LOG.isDebugEnabled()) { > LOG.debug("Closing " + cnxn); > cnxn.close(); > } > } > } > {code} > So the connection is only closed when debug mode is enabled. This is > problematic as lots of clean up code is abstracted inside the close and > without proper close the connection we are leaking resources. > [Commit > log|https://github.com/apache/zookeeper/blob/master/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java#L147] > indicates the issue exists since day 1 with ZOOKEEPER-733. Note the original > patch uploaded to ZOOKEEPER-733 has this close call in right place, and the > call gets moved around during iteration of the patches w/o gets noticed. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] zookeeper issue #207: ZOOKEEPER-2737: close netty connection when exceptions...
Github user enixon commented on the issue: https://github.com/apache/zookeeper/pull/207 good catch! --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
Success: ZOOKEEPER- PreCommit Build #478
Build: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/478/ ### ## LAST 60 LINES OF THE CONSOLE ### [...truncated 65.79 MB...] [exec] [exec] +1 @author. The patch does not contain any @author tags. [exec] [exec] +0 tests included. The patch appears to be a documentation patch that doesn't require tests. [exec] [exec] +1 javadoc. The javadoc tool did not generate any warning messages. [exec] [exec] +1 javac. The applied patch does not increase the total number of javac compiler warnings. [exec] [exec] +1 findbugs. The patch does not introduce any new Findbugs (version 3.0.1) warnings. [exec] [exec] +1 release audit. The applied patch does not increase the total number of release audit warnings. [exec] [exec] +1 core tests. The patch passed core unit tests. [exec] [exec] +1 contrib tests. The patch passed contrib unit tests. [exec] [exec] Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/478//testReport/ [exec] Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/478//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html [exec] Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/478//console [exec] [exec] This message is automatically generated. [exec] [exec] [exec] == [exec] == [exec] Adding comment to Jira. [exec] == [exec] == [exec] [exec] [exec] Comment added. [exec] d1edd36e3030004a1b73167e2a699483006fb181 logged out [exec] [exec] [exec] == [exec] == [exec] Finished build. [exec] == [exec] == [exec] [exec] [exec] mv: '/home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/patchprocess' and '/home/jenkins/jenkins-slave/workspace/PreCommit-ZOOKEEPER-github-pr-build/patchprocess' are the same file BUILD SUCCESSFUL Total time: 18 minutes 38 seconds Archiving artifacts Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Recording test results Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 [description-setter] Description set: ZOOKEEPER-2737 Putting comment on the pull request Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Email was triggered for: Success Sending email for trigger: Success Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7 ### ## FAILED TESTS (if any) ## All tests passed
[jira] [Commented] (ZOOKEEPER-2737) NettyServerCnxFactory leaks connection if exception happens while writing to a channel.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940852#comment-15940852 ] Hadoop QA commented on ZOOKEEPER-2737: -- +1 overall. GitHub Pull Request Build +1 @author. The patch does not contain any @author tags. +0 tests included. The patch appears to be a documentation patch that doesn't require tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 3.0.1) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/478//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/478//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/478//console This message is automatically generated. > NettyServerCnxFactory leaks connection if exception happens while writing to > a channel. > --- > > Key: ZOOKEEPER-2737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2737 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.5.2 >Reporter: Michael Han >Assignee: Michael Han >Priority: Critical > Labels: connection, netty, server > > Found this while debugging occasionally failed unit tests. Currently we do > this if exception occurs during writing to a channel with Netty: > {code} > @Override > public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent > e) > throws Exception > { > LOG.warn("Exception caught " + e, e.getCause()); > NettyServerCnxn cnxn = (NettyServerCnxn) ctx.getAttachment(); > if (cnxn != null) { > if (LOG.isDebugEnabled()) { > LOG.debug("Closing " + cnxn); > cnxn.close(); > } > } > } > {code} > So the connection is only closed when debug mode is enabled. This is > problematic as lots of clean up code is abstracted inside the close and > without proper close the connection we are leaking resources. > [Commit > log|https://github.com/apache/zookeeper/blob/master/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java#L147] > indicates the issue exists since day 1 with ZOOKEEPER-733. Note the original > patch uploaded to ZOOKEEPER-733 has this close call in right place, and the > call gets moved around during iteration of the patches w/o gets noticed. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-900) FLE implementation should be improved to use non-blocking sockets
[ https://issues.apache.org/jira/browse/ZOOKEEPER-900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940836#comment-15940836 ] Michael Han commented on ZOOKEEPER-900: --- You could ping the current assignee [~makuchta] but it looks to me this issue is not being worked on given no progress indicator here since last may. > FLE implementation should be improved to use non-blocking sockets > - > > Key: ZOOKEEPER-900 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-900 > Project: ZooKeeper > Issue Type: Bug >Reporter: Vishal Kher >Assignee: Martin Kuchta >Priority: Critical > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-900-part2.patch, ZOOKEEPER-900.patch, > ZOOKEEPER-900.patch1, ZOOKEEPER-900.patch2 > > > From earlier email exchanges: > 1. Blocking connects and accepts: > a) The first problem is in manager.toSend(). This invokes connectOne(), which > does a blocking connect. While testing, I changed the code so that > connectOne() starts a new thread called AsyncConnct(). AsyncConnect.run() > does a socketChannel.connect(). After starting AsyncConnect, connectOne > starts a timer. connectOne continues with normal operations if the connection > is established before the timer expires, otherwise, when the timer expires it > interrupts AsyncConnect() thread and returns. In this way, I can have an > upper bound on the amount of time we need to wait for connect to succeed. Of > course, this was a quick fix for my testing. Ideally, we should use Selector > to do non-blocking connects/accepts. I am planning to do that later once we > at least have a quick fix for the problem and consensus from others for the > real fix (this problem is big blocker for us). Note that it is OK to do > blocking IO in SenderWorker and RecvWorker threads since they block IO to the > respective peer. > b) The blocking IO problem is not just restricted to connectOne(), but also > in receiveConnection(). The Listener thread calls receiveConnection() for > each incoming connection request. receiveConnection does blocking IO to get > peer's info (s.read(msgBuffer)). Worse, it invokes connectOne() back to the > peer that had sent the connection request. All of this is happening from the > Listener. In short, if a peer fails after initiating a connection, the > Listener thread won't be able to accept connections from other peers, because > it would be stuck in read() or connetOne(). Also the code has an inherent > cycle. initiateConnection() and receiveConnection() will have to be very > carefully synchronized otherwise, we could run into deadlocks. This code is > going to be difficult to maintain/modify. > Also see: https://issues.apache.org/jira/browse/ZOOKEEPER-822 -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2737) NettyServerCnxFactory leaks connection if exception happens while writing to a channel.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940817#comment-15940817 ] ASF GitHub Bot commented on ZOOKEEPER-2737: --- GitHub user hanm opened a pull request: https://github.com/apache/zookeeper/pull/207 ZOOKEEPER-2737: close netty connection when exceptions occur during w… …rite to channel to prevent resource leak. I am OK to add some contrived test case to test this but I'd like to do that later if needed, so this fix can get in upcoming releases.. You can merge this pull request into a Git repository by running: $ git pull https://github.com/hanm/zookeeper ZOOKEEPER-2737 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/zookeeper/pull/207.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #207 commit ad3b98418b6739d14003753f913a894dc0868fc1 Author: Michael Han Date: 2017-03-24T17:49:09Z ZOOKEEPER-2737: close netty connection when exceptions occur during write to channel. To prevent resource leak. > NettyServerCnxFactory leaks connection if exception happens while writing to > a channel. > --- > > Key: ZOOKEEPER-2737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2737 > Project: ZooKeeper > Issue Type: Bug > Components: server >Affects Versions: 3.5.2 >Reporter: Michael Han >Assignee: Michael Han >Priority: Critical > Labels: connection, netty, server > > Found this while debugging occasionally failed unit tests. Currently we do > this if exception occurs during writing to a channel with Netty: > {code} > @Override > public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent > e) > throws Exception > { > LOG.warn("Exception caught " + e, e.getCause()); > NettyServerCnxn cnxn = (NettyServerCnxn) ctx.getAttachment(); > if (cnxn != null) { > if (LOG.isDebugEnabled()) { > LOG.debug("Closing " + cnxn); > cnxn.close(); > } > } > } > {code} > So the connection is only closed when debug mode is enabled. This is > problematic as lots of clean up code is abstracted inside the close and > without proper close the connection we are leaking resources. > [Commit > log|https://github.com/apache/zookeeper/blob/master/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java#L147] > indicates the issue exists since day 1 with ZOOKEEPER-733. Note the original > patch uploaded to ZOOKEEPER-733 has this close call in right place, and the > call gets moved around during iteration of the patches w/o gets noticed. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[GitHub] zookeeper pull request #207: ZOOKEEPER-2737: close netty connection when exc...
GitHub user hanm opened a pull request: https://github.com/apache/zookeeper/pull/207 ZOOKEEPER-2737: close netty connection when exceptions occur during w⦠â¦rite to channel to prevent resource leak. I am OK to add some contrived test case to test this but I'd like to do that later if needed, so this fix can get in upcoming releases.. You can merge this pull request into a Git repository by running: $ git pull https://github.com/hanm/zookeeper ZOOKEEPER-2737 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/zookeeper/pull/207.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #207 commit ad3b98418b6739d14003753f913a894dc0868fc1 Author: Michael Han Date: 2017-03-24T17:49:09Z ZOOKEEPER-2737: close netty connection when exceptions occur during write to channel. To prevent resource leak. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Comment Edited] (ZOOKEEPER-2707) Fix "Unexpected bean exists!" issue in WatcherTests
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940770#comment-15940770 ] Michael Han edited comment on ZOOKEEPER-2707 at 3/24/17 5:37 PM: - This should (hopefully) be fixed with ZOOKEEPER-2737. The "unexpected beans" were leaked connection beans caused by ZOOKEEPER-2737 and the connection only leaks when we write to a channel but for some reasons, the exception happens while we are writing. Because of ZOOKEEPER-2737 we did not close the connection, the connection bean associated with the netty connection will not be deregistered which causes the the assertion fails here. On a side note, this is a good example that our unit test catches an important issue that left unnoticed for years (probably also because not many people using Netty). It's also good that in ZOOKEEPER-1858 that [~fpj] pointed out to stick with the original semantic of the bean checks to ensure no bean leak otherwise we would not notice this issue while debugging watcher test here. For reference here is how the leak is identified: * I noticed that no matter how hard I tried, these watcher test can't be reproduced stand alone. It is only reproducible with the rest of test suite. * I set up Jenkins jobs to stress test the entire suite. When I am lucky, I get the failures of watchers. * Identify the leaked bean, which contains the session id. * Mine entire log, find where the session id is created. * Continuing mine the log, find all references where this session id is referenced. * I find a consistent pattern that around this session id, there is an exception thrown inside channel.write. * Check the code that references channel.write and spotted the connection leak. Note I haven't been able to identify exactly what cause the write exception. Another consistent pattern is when the exception occurs, we are usually inside one of the dynamic reconfig tests. This could be something to follow up (and we should really clean up LOG.info calls to make log mining easier). was (Author: hanm): This should (hopefully) be fixed with ZOOKEEPER-2737. The "unexpected beans" were leaked connection beans caused by ZOOKEEPER-2737 and the connection only leaks when we write to a channel but for some reasons, the exception happens while we are writing. Because of ZOOKEEPER-2737 we did not close the connection, the connection bean associated with the netty connection will not be deregistered which causes the the assertion fails here. On a side note, this is a good example that our unit test catches an important issue that left unnoticed for years (probably also because not many people using Netty). It's also good that in ZOOKEEPER-1858 that [~fpj] pointed out to stick with the original semantic of the bean checks to ensure no bean leak otherwise we would not notice this issue while debugging watcher test here. For reference here is how the leak is identified: * I noticed that no matter how hard I tried, these watcher test can't be reproduced stand alone. It is only reproducible with the rest of test suite. * I set up Jenkins jobs to stress test the entire suite. When I am lucky, I get the failures of watchers. * Identify the leaked bean, which contains the session id. * Mine entire log, find where the session id is created. * Continuing mine the log, find all references where this session id is referenced. * I find a consistent pattern that around this session id, there is an exception thrown inside channel.write. * Check the code that references channel.write and spotted the connection leak. > Fix "Unexpected bean exists!" issue in WatcherTests > --- > > Key: ZOOKEEPER-2707 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2707 > Project: ZooKeeper > Issue Type: Sub-task > Components: tests >Affects Versions: 3.4.10, 3.5.3 >Reporter: Abraham Fine >Assignee: Michael Han > > All the WatcherTests occasionally fail with: > {code} > Error Message: > Unexpected bean exists! expected:<0> but was:<1> > Stack Trace: > junit.framework.AssertionFailedError: Unexpected bean exists! expected:<0> > but was:<1> > at > org.apache.zookeeper.test.ClientBase.verifyUnexpectedBeans(ClientBase.java:498) > at org.apache.zookeeper.test.ClientBase.startServer(ClientBase.java:477) > at org.apache.zookeeper.test.ClientBase.setUp(ClientBase.java:460) > at org.apache.zookeeper.test.WatcherTest.setUp(WatcherTest.java:76) > {code} > Here is an example: > https://builds.apache.org/job/ZooKeeper_branch35_openjdk7/422/ -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (ZOOKEEPER-2707) Fix "Unexpected bean exists!" issue in WatcherTests
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940770#comment-15940770 ] Michael Han edited comment on ZOOKEEPER-2707 at 3/24/17 5:35 PM: - This should (hopefully) be fixed with ZOOKEEPER-2737. The "unexpected beans" were leaked connection beans caused by ZOOKEEPER-2737 and the connection only leaks when we write to a channel but for some reasons, the exception happens while we are writing. Because of ZOOKEEPER-2737 we did not close the connection, the connection bean associated with the netty connection will not be deregistered which causes the the assertion fails here. On a side note, this is a good example that our unit test catches an important issue that left unnoticed for years (probably also because not many people using Netty). It's also good that in ZOOKEEPER-1858 that [~fpj] pointed out to stick with the original semantic of the bean checks to ensure no bean leak otherwise we would not notice this issue while debugging watcher test here. For reference here is how the leak is identified: * I noticed that no matter how hard I tried, these watcher test can't be reproduced stand alone. It is only reproducible with the rest of test suite. * I set up Jenkins jobs to stress test the entire suite. When I am lucky, I get the failures of watchers. * Identify the leaked bean, which contains the session id. * Mine entire log, find where the session id is created. * Continuing mine the log, find all references where this session id is referenced. * I find a consistent pattern that around this session id, there is an exception thrown inside channel.write. * Check the code that references channel.write and spotted the connection leak. was (Author: hanm): This should (hopefully) be fixed with ZOOKEEPER-2737. > Fix "Unexpected bean exists!" issue in WatcherTests > --- > > Key: ZOOKEEPER-2707 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2707 > Project: ZooKeeper > Issue Type: Sub-task > Components: tests >Affects Versions: 3.4.10, 3.5.3 >Reporter: Abraham Fine >Assignee: Michael Han > > All the WatcherTests occasionally fail with: > {code} > Error Message: > Unexpected bean exists! expected:<0> but was:<1> > Stack Trace: > junit.framework.AssertionFailedError: Unexpected bean exists! expected:<0> > but was:<1> > at > org.apache.zookeeper.test.ClientBase.verifyUnexpectedBeans(ClientBase.java:498) > at org.apache.zookeeper.test.ClientBase.startServer(ClientBase.java:477) > at org.apache.zookeeper.test.ClientBase.setUp(ClientBase.java:460) > at org.apache.zookeeper.test.WatcherTest.setUp(WatcherTest.java:76) > {code} > Here is an example: > https://builds.apache.org/job/ZooKeeper_branch35_openjdk7/422/ -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2707) Fix "Unexpected bean exists!" issue in WatcherTests
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940770#comment-15940770 ] Michael Han commented on ZOOKEEPER-2707: This should (hopefully) be fixed with ZOOKEEPER-2737. > Fix "Unexpected bean exists!" issue in WatcherTests > --- > > Key: ZOOKEEPER-2707 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2707 > Project: ZooKeeper > Issue Type: Sub-task > Components: tests >Affects Versions: 3.4.10, 3.5.3 >Reporter: Abraham Fine >Assignee: Michael Han > > All the WatcherTests occasionally fail with: > {code} > Error Message: > Unexpected bean exists! expected:<0> but was:<1> > Stack Trace: > junit.framework.AssertionFailedError: Unexpected bean exists! expected:<0> > but was:<1> > at > org.apache.zookeeper.test.ClientBase.verifyUnexpectedBeans(ClientBase.java:498) > at org.apache.zookeeper.test.ClientBase.startServer(ClientBase.java:477) > at org.apache.zookeeper.test.ClientBase.setUp(ClientBase.java:460) > at org.apache.zookeeper.test.WatcherTest.setUp(WatcherTest.java:76) > {code} > Here is an example: > https://builds.apache.org/job/ZooKeeper_branch35_openjdk7/422/ -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Assigned] (ZOOKEEPER-2707) Fix "Unexpected bean exists!" issue in WatcherTests
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Han reassigned ZOOKEEPER-2707: -- Assignee: Michael Han (was: Abraham Fine) > Fix "Unexpected bean exists!" issue in WatcherTests > --- > > Key: ZOOKEEPER-2707 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2707 > Project: ZooKeeper > Issue Type: Sub-task > Components: tests >Affects Versions: 3.4.10, 3.5.3 >Reporter: Abraham Fine >Assignee: Michael Han > > All the WatcherTests occasionally fail with: > {code} > Error Message: > Unexpected bean exists! expected:<0> but was:<1> > Stack Trace: > junit.framework.AssertionFailedError: Unexpected bean exists! expected:<0> > but was:<1> > at > org.apache.zookeeper.test.ClientBase.verifyUnexpectedBeans(ClientBase.java:498) > at org.apache.zookeeper.test.ClientBase.startServer(ClientBase.java:477) > at org.apache.zookeeper.test.ClientBase.setUp(ClientBase.java:460) > at org.apache.zookeeper.test.WatcherTest.setUp(WatcherTest.java:76) > {code} > Here is an example: > https://builds.apache.org/job/ZooKeeper_branch35_openjdk7/422/ -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-900) FLE implementation should be improved to use non-blocking sockets
[ https://issues.apache.org/jira/browse/ZOOKEEPER-900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940766#comment-15940766 ] Atri Sharma commented on ZOOKEEPER-900: --- Hi Folks, Is this still being worked on? I was thinking of taking this up. Please let me know > FLE implementation should be improved to use non-blocking sockets > - > > Key: ZOOKEEPER-900 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-900 > Project: ZooKeeper > Issue Type: Bug >Reporter: Vishal Kher >Assignee: Martin Kuchta >Priority: Critical > Fix For: 3.5.4, 3.6.0 > > Attachments: ZOOKEEPER-900-part2.patch, ZOOKEEPER-900.patch, > ZOOKEEPER-900.patch1, ZOOKEEPER-900.patch2 > > > From earlier email exchanges: > 1. Blocking connects and accepts: > a) The first problem is in manager.toSend(). This invokes connectOne(), which > does a blocking connect. While testing, I changed the code so that > connectOne() starts a new thread called AsyncConnct(). AsyncConnect.run() > does a socketChannel.connect(). After starting AsyncConnect, connectOne > starts a timer. connectOne continues with normal operations if the connection > is established before the timer expires, otherwise, when the timer expires it > interrupts AsyncConnect() thread and returns. In this way, I can have an > upper bound on the amount of time we need to wait for connect to succeed. Of > course, this was a quick fix for my testing. Ideally, we should use Selector > to do non-blocking connects/accepts. I am planning to do that later once we > at least have a quick fix for the problem and consensus from others for the > real fix (this problem is big blocker for us). Note that it is OK to do > blocking IO in SenderWorker and RecvWorker threads since they block IO to the > respective peer. > b) The blocking IO problem is not just restricted to connectOne(), but also > in receiveConnection(). The Listener thread calls receiveConnection() for > each incoming connection request. receiveConnection does blocking IO to get > peer's info (s.read(msgBuffer)). Worse, it invokes connectOne() back to the > peer that had sent the connection request. All of this is happening from the > Listener. In short, if a peer fails after initiating a connection, the > Listener thread won't be able to accept connections from other peers, because > it would be stuck in read() or connetOne(). Also the code has an inherent > cycle. initiateConnection() and receiveConnection() will have to be very > carefully synchronized otherwise, we could run into deadlocks. This code is > going to be difficult to maintain/modify. > Also see: https://issues.apache.org/jira/browse/ZOOKEEPER-822 -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Assigned] (ZOOKEEPER-2686) Flaky Test: org.apache.zookeeper.test.WatcherTest.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Han reassigned ZOOKEEPER-2686: -- Assignee: Michael Han (was: Abraham Fine) > Flaky Test: org.apache.zookeeper.test.WatcherTest. > -- > > Key: ZOOKEEPER-2686 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2686 > Project: ZooKeeper > Issue Type: Test > Components: tests >Affects Versions: 3.4.9, 3.5.2, 3.6.0 >Reporter: Michael Han >Assignee: Michael Han > Labels: flaky-test > > Once in a while, these tests failed. > {noformat} > org.apache.zookeeper.test.WatcherTest.testWatchAutoResetWithPending > org.apache.zookeeper.test.WatcherTest.testWatcherCorrectness > org.apache.zookeeper.test.WatcherTest.testWatcherAutoResetDisabledWithLocal > org.apache.zookeeper.test.WatcherTest.testWatcherAutoResetWithGlobal > org.apache.zookeeper.test.WatcherTest.testWatcherCount > org.apache.zookeeper.test.WatcherTest.testWatcherAutoResetDisabledWithGlobal > org.apache.zookeeper.test.WatcherTest.testWatcherAutoResetWithLocal > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (ZOOKEEPER-2737) NettyServerCnxFactory leaks connection if exception happens while writing to a channel.
Michael Han created ZOOKEEPER-2737: -- Summary: NettyServerCnxFactory leaks connection if exception happens while writing to a channel. Key: ZOOKEEPER-2737 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2737 Project: ZooKeeper Issue Type: Bug Components: server Affects Versions: 3.5.2 Reporter: Michael Han Assignee: Michael Han Priority: Critical Found this while debugging occasionally failed unit tests. Currently we do this if exception occurs during writing to a channel with Netty: {code} @Override public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception { LOG.warn("Exception caught " + e, e.getCause()); NettyServerCnxn cnxn = (NettyServerCnxn) ctx.getAttachment(); if (cnxn != null) { if (LOG.isDebugEnabled()) { LOG.debug("Closing " + cnxn); cnxn.close(); } } } {code} So the connection is only closed when debug mode is enabled. This is problematic as lots of clean up code is abstracted inside the close and without proper close the connection we are leaking resources. [Commit log|https://github.com/apache/zookeeper/blob/master/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java#L147] indicates the issue exists since day 1 with ZOOKEEPER-733. Note the original patch uploaded to ZOOKEEPER-733 has this close call in right place, and the call gets moved around during iteration of the patches w/o gets noticed. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ZOOKEEPER-2370) Can't access Znodes after adding ACL with SASL
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15940631#comment-15940631 ] Philippe Back commented on ZOOKEEPER-2370: -- I got this one too. It turns out that the root cause is that the service is started with: {code}authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider jaasLoginRenew=360 kerberos.removeHostFromPrincipal=true kerberos.removeRealmFromPrincipal=true {code} Not putting the server and the realm when doing the setAcl in zkCli is giving a match when accessing the node as the message is then gone. But if one puts the realm in, one is just locking him or herself out. To remove the znode, I guess the only way is to start ZK zithout ACL checks (not very practical in production) or user a super user. Now, how is one logging in with such a user in ZK with zkCli.sh ? > Can't access Znodes after adding ACL with SASL > -- > > Key: ZOOKEEPER-2370 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2370 > Project: ZooKeeper > Issue Type: Bug > Components: java client >Affects Versions: 3.4.5 >Reporter: Chao Sun > > (My apology if this is not a bug.) > I'm trying to use a ZK client which has successfully authenticated with a > secure ZK server using principal {{me/hostn...@example.com}}. However, the > following simple commands failed: > {code} > [zk: hostname(CONNECTED) 0] create /zk-test "1" > Created /zk-test > [zk: hostname(CONNECTED) 1] setAcl /zk-test sasl:me/hostn...@example.com:cdrwa > cZxid = 0x3e3b > ctime = Mon Feb 22 23:10:36 PST 2016 > mZxid = 0x3e3b > mtime = Mon Feb 22 23:10:36 PST 2016 > pZxid = 0x3e3b > cversion = 0 > dataVersion = 0 > aclVersion = 1 > ephemeralOwner = 0x0 > dataLength = 3 > numChildren = 0 > [zk: hostname(CONNECTED) 2] getAcl /zk-test > 'sasl,'me/hostn...@example.com > : cdrwa > [zk: hostname(CONNECTED) 3] ls /zk-test > Authentication is not valid : /zk-test > [zk: hostname(CONNECTED) 4] create /zk-test/c "2" > Authentication is not valid : /zk-test/c > {code} > I wonder what I did wrong here, or is this behavior intentional? how can I > delete the znodes? Thanks. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
ZooKeeper_branch35_jdk8 - Build # 468 - Failure
See https://builds.apache.org/job/ZooKeeper_branch35_jdk8/468/ ### ## LAST 60 LINES OF THE CONSOLE ### Started by timer [EnvInject] - Loading node environment variables. ERROR: SEVERE ERROR occurs org.jenkinsci.lib.envinject.EnvInjectException: java.io.IOException: Remote call on ubuntu-eu3 failed at org.jenkinsci.plugins.envinject.EnvInjectListener.loadEnvironmentVariablesNode(EnvInjectListener.java:86) at org.jenkinsci.plugins.envinject.EnvInjectListener.setUpEnvironment(EnvInjectListener.java:42) at hudson.model.AbstractBuild$AbstractBuildExecution.createLauncher(AbstractBuild.java:572) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:492) at hudson.model.Run.execute(Run.java:1728) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:404) Caused by: java.io.IOException: Remote call on ubuntu-eu3 failed at hudson.remoting.Channel.call(Channel.java:830) at hudson.FilePath.act(FilePath.java:1080) at org.jenkinsci.plugins.envinject.service.EnvInjectActionSetter.addEnvVarsToEnvInjectBuildAction(EnvInjectActionSetter.java:38) at org.jenkinsci.plugins.envinject.EnvInjectListener.loadEnvironmentVariablesNode(EnvInjectListener.java:83) ... 7 more Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded ERROR: Step ‘Publish JUnit test result report’ failed: no workspace for ZooKeeper_branch35_jdk8 #468 [EnvInject] - [ERROR] - SEVERE ERROR occurs: Remote call on ubuntu-eu3 failed Email was triggered for: Failure - Any Sending email for trigger: Failure - Any ### ## FAILED TESTS (if any) ## No tests ran.
ZooKeeper-trunk-jdk8 - Build # 991 - Still Failing
See https://builds.apache.org/job/ZooKeeper-trunk-jdk8/991/ ### ## LAST 60 LINES OF THE CONSOLE ### Started by timer [EnvInject] - Loading node environment variables. ERROR: SEVERE ERROR occurs org.jenkinsci.lib.envinject.EnvInjectException: java.io.IOException: Remote call on ubuntu-eu3 failed at org.jenkinsci.plugins.envinject.EnvInjectListener.loadEnvironmentVariablesNode(EnvInjectListener.java:86) at org.jenkinsci.plugins.envinject.EnvInjectListener.setUpEnvironment(EnvInjectListener.java:42) at hudson.model.AbstractBuild$AbstractBuildExecution.createLauncher(AbstractBuild.java:572) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:492) at hudson.model.Run.execute(Run.java:1728) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:404) Caused by: java.io.IOException: Remote call on ubuntu-eu3 failed at hudson.remoting.Channel.call(Channel.java:830) at hudson.FilePath.act(FilePath.java:1080) at org.jenkinsci.plugins.envinject.service.EnvInjectActionSetter.addEnvVarsToEnvInjectBuildAction(EnvInjectActionSetter.java:38) at org.jenkinsci.plugins.envinject.EnvInjectListener.loadEnvironmentVariablesNode(EnvInjectListener.java:83) ... 7 more Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded ERROR: Step ‘Scan for compiler warnings’ failed: no workspace for ZooKeeper-trunk-jdk8 #991 ERROR: Step ‘Publish JUnit test result report’ failed: no workspace for ZooKeeper-trunk-jdk8 #991 [EnvInject] - [ERROR] - SEVERE ERROR occurs: Remote call on ubuntu-eu3 failed Email was triggered for: Failure - Any Sending email for trigger: Failure - Any ### ## FAILED TESTS (if any) ## No tests ran.
Failed: ZOOKEEPER- PreCommit Build #477
Build: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/477/ ### ## LAST 60 LINES OF THE CONSOLE ### [...truncated 19.17 KB...] warning: Cannot merge binary files: docs/zookeeperOver.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) warning: Cannot merge binary files: docs/zookeeperObservers.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) warning: Cannot merge binary files: docs/zookeeperJMX.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) warning: Cannot merge binary files: docs/zookeeperInternals.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) warning: Cannot merge binary files: docs/zookeeperHierarchicalQuorums.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) warning: Cannot merge binary files: docs/zookeeperAdmin.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) warning: Cannot merge binary files: docs/recipes.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) warning: Cannot merge binary files: docs/linkmap.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) warning: Cannot merge binary files: docs/javaExample.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) warning: Cannot merge binary files: docs/index.pdf (HEAD vs. cc2ea49262d0f9eae7ef697e00ea9210516052c1) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1793) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1766) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1762) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1409) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$3.execute(CliGitAPIImpl.java:588) at org.jenkinsci.plugins.gitclient.AbstractGitAPIImpl.merge(AbstractGitAPIImpl.java:86) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.merge(CliGitAPIImpl.java:64) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:894) at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:869) at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:828) at hudson.remoting.UserRequest.perform(UserRequest.java:153) at hudson.remoting.UserRequest.perform(UserRequest.java:50) at hudson.remoting.Request$2.run(Request.java:336) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) at ..remote call to H7(Native Method) at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1537) at hudson.remoting.UserResponse.retrieve(UserRequest.java:253) at hudson.remoting.Channel.call(Channel.java:822) at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:256) at com.sun.proxy.$Proxy96.merge(Unknown Source) at org.jenkinsci.plugins.gitclient.RemoteGitImpl.merge(RemoteGitImpl.java:435) at com.cloudbees.jenkins.plugins.git.vmerge.BuildChooserImpl.getCandidateRevisions(BuildChooserImpl.java:107) at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:995) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1102) at hudson.scm.SCM.checkout(SCM.java:495) at hudson.model.AbstractProject.checkout(AbstractProject.java:1278) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529) at hudson.model.Run.execute(Run.java:1728) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:404) Archiving artifacts Recording test results ERROR: Step ?Publish JUnit test result report? failed: No test report files were found. Configuration error? [description-setter] Could not determine description. Putting comment on the pull request Email was triggered for: Failure - Any Sending email f
[GitHub] zookeeper pull request #206: Branch 3.5
GitHub user dengyunlong opened a pull request: https://github.com/apache/zookeeper/pull/206 Branch 3.5 You can merge this pull request into a Git repository by running: $ git pull https://github.com/apache/zookeeper branch-3.5 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/zookeeper/pull/206.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #206 commit 2797dd9c68620990bc8d7c0a21b3efb7fa64b62c Author: Rakesh Radhakrishnan Date: 2014-09-29T17:17:02Z ZOOKEEPER-1948 Enable JMX remote monitoring (Biju Nair via rakeshr) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1628226 13f79535-47bb-0310-9956-ffa450edef68 commit 8f4d6206b195fd7d81be20c234771ce7090b60c0 Author: Rakesh Radhakrishnan Date: 2014-10-13T03:12:50Z ZOOKEEPER-1917 Apache Zookeeper logs cleartext admin passwords (michim via rakeshr) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1631278 13f79535-47bb-0310-9956-ffa450edef68 commit a07df7313254a262f3d0276375206a62f284a9cd Author: Michi Mutsuzaki Date: 2014-10-16T04:51:49Z ZOOKEEPER-2049 Yosemite build failure: htonll conflict (Till Toenshoff via michim) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1632211 13f79535-47bb-0310-9956-ffa450edef68 commit 53b0644f1c1e6cc70ea9847a4dfde5e8d42dd69a Author: Rakesh Radhakrishnan Date: 2014-10-28T04:37:55Z ZOOKEEPER-2052 Unable to delete a node when the node has no children (Hongchao Deng and Yip Ng via rakeshr) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1634778 13f79535-47bb-0310-9956-ffa450edef68 commit c30e857e135fff41af403ba754de8d6e3d1636c0 Author: Michi Mutsuzaki Date: 2014-11-17T06:48:15Z ZOOKEEPER-2079 Stop daemon with "kill" rather than "kill -9" (Guillaume ALAUX via michim) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1640070 13f79535-47bb-0310-9956-ffa450edef68 commit 609c7a7f8f14390154212f1c3bbfc92fbac967f5 Author: Flavio Paiva Junqueira Date: 2014-11-19T22:38:28Z ZOOKEEPER-2060 Trace bug in NettyServerCnxnFactory (Ian via fpj) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1640636 13f79535-47bb-0310-9956-ffa450edef68 commit cb21aee521d3169e5449203f4069ae3d249e4dc6 Author: Flavio Paiva Junqueira Date: 2014-11-29T15:54:58Z ZOOKEEPER-2064 Prevent resource leak in various classes (Ted Yu via fpj) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1642440 13f79535-47bb-0310-9956-ffa450edef68 commit 8a1b38308455f5321c9524c8cb0f18b223328063 Author: Flavio Paiva Junqueira Date: 2014-12-17T22:00:44Z ZOOKEEPER-1963 Make JDK 7 the minimum requirement for Zookeeper (Hongchao via fpj) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1646346 13f79535-47bb-0310-9956-ffa450edef68 commit a0434213b9f8a04a733486fb449bde5325d9587c Author: Flavio Paiva Junqueira Date: 2014-12-20T14:31:47Z ZOOKEEPER-2069 Netty Support for ClientCnxnSocket (Hongchao via fpj) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1646990 13f79535-47bb-0310-9956-ffa450edef68 commit 382c1a051f46c3028332af0dda92fd45f2130637 Author: Rakesh Radhakrishnan Date: 2015-01-27T16:29:34Z ZOOKEEPER-2110 Typo fixes in the ZK documentation. (Jeffrey Schroeder via rakeshr) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1655085 13f79535-47bb-0310-9956-ffa450edef68 commit 98974902997aa371e37d5e6147304b86fa5ecb86 Author: Rakesh Radhakrishnan Date: 2015-01-30T02:25:05Z ZOOKEEPER-2072 Netty Server Should Configure Child Channel Pipeline By Specifying ChannelPipelineFactory(Hongchao via rakeshr) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1655911 13f79535-47bb-0310-9956-ffa450edef68 commit 9cf838200acf291ac130282fc98fca47be77392b Author: Rakesh Radhakrishnan Date: 2015-01-31T07:08:20Z ZOOKEEPER-2111 Not isAlive states should be synchronized in ClientCnxn (Hongchao via rakeshr) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1656168 13f79535-47bb-0310-9956-ffa450edef68 commit 1e71c47b02292d6f25ca88ee7343d276fdc4b809 Author: Michi Mutsuzaki Date: 2015-02-06T05:18:30Z ZOOKEEPER-1366 Zookeeper should be tolerant of clock adjustments (Hongchao Deng via michim) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/branches/branch-3.5@1657746 13f79535-47bb-0310-9956-ffa450edef68 commit 6d8b0cbe57e1b5dd4a88af68ac7def68d48defc0 Author: Michi Mutsuzaki Date: 2015-02-09T05:38:21Z ZOOKEEPE