ZooKeeper-trunk-WinVS2008 - Build # 2482 - Still Failing

2017-09-01 Thread Apache Jenkins Server
See https://builds.apache.org/job/ZooKeeper-trunk-WinVS2008/2482/

###
## 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 86577c9d81bd40067bc084e49a7172884ac9ae49 
(refs/remotes/origin/master)
Commit message: "ZOOKEEPER-2880: Rename README.txt to README.md"
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 86577c9d81bd40067bc084e49a7172884ac9ae49
 > git rev-list 86577c9d81bd40067bc084e49a7172884ac9ae49 # 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 - Build # 3520 - Still Failing

2017-09-01 Thread Apache Jenkins Server
See https://builds.apache.org/job/ZooKeeper-trunk/3520/

###
## LAST 60 LINES OF THE CONSOLE 
###
[...truncated 66.22 MB...]
[junit] 2017-09-01 23:27:44,470 [myid:127.0.0.1:24813] - INFO  
[main-SendThread(127.0.0.1:24813):ClientCnxn$SendThread@1113] - Opening socket 
connection to server 127.0.0.1/127.0.0.1:24813. Will not attempt to 
authenticate using SASL (unknown error)
[junit] 2017-09-01 23:27:44,471 [myid:] - INFO  [New I/O boss 
#15288:ClientCnxnSocketNetty$1@127] - future isn't success, cause: {}
[junit] java.net.ConnectException: Connection refused: 
127.0.0.1/127.0.0.1:24813
[junit] at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
[junit] at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:152)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:105)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:79)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)
[junit] at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[junit] at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
[junit] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[junit] at java.lang.Thread.run(Thread.java:745)
[junit] 2017-09-01 23:27:44,490 [myid:] - WARN  [New I/O boss 
#15288:ClientCnxnSocketNetty$ZKClientHandler@439] - Exception caught: [id: 
0xe2e3d6d1] EXCEPTION: java.net.ConnectException: Connection refused: 
127.0.0.1/127.0.0.1:24813
[junit] java.net.ConnectException: Connection refused: 
127.0.0.1/127.0.0.1:24813
[junit] at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
[junit] at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:152)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:105)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:79)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)
[junit] at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[junit] at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
[junit] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[junit] at java.lang.Thread.run(Thread.java:745)
[junit] 2017-09-01 23:27:44,490 [myid:] - INFO  [New I/O boss 
#15288:ClientCnxnSocketNetty@208] - channel is told closing
[junit] 2017-09-01 23:27:44,490 [myid:127.0.0.1:24813] - INFO  
[main-SendThread(127.0.0.1:24813):ClientCnxn$SendThread@1231] - channel for 
sessionid 0x20669722f8b is lost, closing socket connection and attempting 
reconnect
[junit] Running org.apache.zookeeper.server.quorum.Zab1_0Test in thread 3
[junit] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 
sec, Thread: 3, Class: org.apache.zookeeper.server.quorum.Zab1_0Test
[junit] Test org.apache.zookeeper.server.quorum.Zab1_0Test FAILED (timeout)

fail.build.on.test.failure:

BUILD FAILED
/home/jenkins/jenkins-slave/workspace/ZooKeeper-trunk/build.xml:1339: The 
following error occurred while executing this line:
/home/jenkins/jenkins-slave/workspace/ZooKeeper-trunk/build.xml:1220: The 
following error occurred while executing this line:
/home/jenkins/jenkins-slave/workspace/ZooKeeper-trunk/build.xml:1224: Tests 
failed!

Total time: 16 minutes 43 seconds
Build step 'Execute shell' marked build as failure
[FINDBUGS] Skipping publisher since build result is FAILURE
[WARNINGS] Skipping publisher since build result is FAILURE
Archiving artifacts
Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7
Recording fingerprints
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
Publishing Javadoc
Setting JDK_1_7_LATEST__HOME=/home/jenkins/tools/java/latest1.7
Setting JDK_1_7_LATEST__HOME=/home/jenkins/too

[jira] [Commented] (ZOOKEEPER-2809) Unnecessary stack-trace in server when the client disconnect unexpectedly

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-2809:
---

Github user afine commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/355#discussion_r136665164
  
--- Diff: src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java ---
@@ -374,14 +373,12 @@ void doIO(SelectionKey k) throws InterruptedException 
{
 // expecting close to log session closure
 close();
 } catch (EndOfStreamException e) {
-LOG.warn("caught end of stream exception",e); // tell user why
-
+LOG.warn(e.getMessage());
--- End diff --

Do we want to log the whole stack trace if debug is enabled here?


> Unnecessary stack-trace in server when the client disconnect unexpectedly
> -
>
> Key: ZOOKEEPER-2809
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2809
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.8
>Reporter: Paul Millar
>Assignee: Mark Fenes
>Priority: Minor
> Fix For: 3.5.0
>
>
> In ZK 3.4.x, if the client disconnects unexpectedly then the server logs this 
> with a stack-trace (see 
> src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java:356).
> This is unfortunate as we are using an embedded ZK server in our project (in 
> a test environment) and we consider all stack-traces as bugs.
> I noticed that ZK 3.5 and later no longer log a stack-trace.  This change is 
> due to commit 6206b495 (in branch-3.5), which adds ZOOKEEPER-1504 and seems 
> to fix this issue almost as a side-effect; a similar change in master has the 
> same effect.
> I was wondering if the change in how EndOfStreamException is logged (i.e., 
> logging the message without a stack-trace) could be back-ported to 3.4 
> branch, so could be included in the next 3.4 release.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] zookeeper pull request #355: ZOOKEEPER-2809: Unnecessary stack-trace in serv...

2017-09-01 Thread afine
Github user afine commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/355#discussion_r136665164
  
--- Diff: src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java ---
@@ -374,14 +373,12 @@ void doIO(SelectionKey k) throws InterruptedException 
{
 // expecting close to log session closure
 close();
 } catch (EndOfStreamException e) {
-LOG.warn("caught end of stream exception",e); // tell user why
-
+LOG.warn(e.getMessage());
--- End diff --

Do we want to log the whole stack trace if debug is enabled here?


---
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 #348: ZOOKEEPER-2319:UnresolvedAddressException cause...

2017-09-01 Thread afine
Github user afine commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/348#discussion_r136663144
  
--- Diff: 
src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java ---
@@ -621,7 +621,7 @@ public Listener() {
 @Override
 public void run() {
 int numRetries = 0;
-InetSocketAddress addr;
+InetSocketAddress addr = null;
--- End diff --

@maoling I think a test case would be great because catching that exception 
does "change behavior". 


---
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-2319) UnresolvedAddressException cause the QuorumCnxManager.Listener exit

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-2319:
---

Github user afine commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/348#discussion_r136663144
  
--- Diff: 
src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java ---
@@ -621,7 +621,7 @@ public Listener() {
 @Override
 public void run() {
 int numRetries = 0;
-InetSocketAddress addr;
+InetSocketAddress addr = null;
--- End diff --

@maoling I think a test case would be great because catching that exception 
does "change behavior". 


> UnresolvedAddressException cause the QuorumCnxManager.Listener exit
> ---
>
> Key: ZOOKEEPER-2319
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2319
> Project: ZooKeeper
>  Issue Type: Bug
>Affects Versions: 3.4.6
>Reporter: Zhaohui Yu
> Fix For: 3.5.4, 3.6.0
>
>
> Given three nodes, the leader on 2, but some issue with this machine, so I 
> shutdown this machine, and change the host name to another machine.
> Then I start the node in the new machine, but the new node can not join.
> I found the the 1 and 3's Listener thread exit.
> With the code of Listener's run method:
> I think we should catch UnresolvedAddressException to avoid the Listener exit.
> {noformat}
> @Override
> public void run() {
>
> while((!shutdown) && (numRetries < 3)){
> try {
>// bind and accept
> receiveConnection(client);
>   
> } catch (IOException e) {
> 
> }
> }
> //
> }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] zookeeper pull request #338: ZOOKEEPER-1260:Audit logging in ZooKeeper serve...

2017-09-01 Thread afine
Github user afine commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/338#discussion_r136662232
  
--- Diff: src/docs/src/documentation/content/xdocs/zookeeperAuditLogs.xml 
---
@@ -0,0 +1,205 @@
+
+
+http://www.oasis-open.org/docbook/xml/simple/1.0/sdocbook.dtd";>
+
+  ZooKeeper Audit Logging
+  
+
+  Licensed 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";>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.
+
+
+
+This document contains information about Audit Logs in 
ZooKeeper.
+
+  
+  
+ZooKeeper Audit Logs
+Apache ZooKeeper supports audit logs form version 3.5.4. By 
default audit logs are disabled. To enable audit
+logs configure audit.enable=true in conf/zoo.cfg. Audit logs are not 
logged on all the ZooKeeper servers, but logged
+only on the servers where client is connected as depicted in bellow 
figure.
--- End diff --

I agree the figure is great! My point was that you can just say "as 
depicted below". 


---
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-1260) Audit logging in ZooKeeper servers.

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-1260:
---

Github user afine commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/338#discussion_r136662232
  
--- Diff: src/docs/src/documentation/content/xdocs/zookeeperAuditLogs.xml 
---
@@ -0,0 +1,205 @@
+
+
+http://www.oasis-open.org/docbook/xml/simple/1.0/sdocbook.dtd";>
+
+  ZooKeeper Audit Logging
+  
+
+  Licensed 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";>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.
+
+
+
+This document contains information about Audit Logs in 
ZooKeeper.
+
+  
+  
+ZooKeeper Audit Logs
+Apache ZooKeeper supports audit logs form version 3.5.4. By 
default audit logs are disabled. To enable audit
+logs configure audit.enable=true in conf/zoo.cfg. Audit logs are not 
logged on all the ZooKeeper servers, but logged
+only on the servers where client is connected as depicted in bellow 
figure.
--- End diff --

I agree the figure is great! My point was that you can just say "as 
depicted below". 


> Audit logging in ZooKeeper servers.
> ---
>
> Key: ZOOKEEPER-1260
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1260
> Project: ZooKeeper
>  Issue Type: New Feature
>  Components: server
>Reporter: Mahadev konar
>Assignee: Mohammad Arshad
> Fix For: 3.5.4, 3.6.0
>
> Attachments: ZOOKEEPER-1260-01.patch, zookeeperAuditLogs.pdf
>
>
> Lots of users have had questions on debugging which client changed what znode 
> and what updates went through a znode. We should add audit logging as in 
> Hadoop (look at Namenode Audit logging) to log which client changed what in 
> the zookeeper servers. This could just be a log4j audit logger.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (ZOOKEEPER-1260) Audit logging in ZooKeeper servers.

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-1260:
---

Github user afine commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/338#discussion_r136660599
  
--- Diff: src/java/main/org/apache/zookeeper/server/ServerCnxnFactory.java 
---
@@ -54,6 +54,7 @@
  */
 static final ByteBuffer closeConn = ByteBuffer.allocate(0);
 
+private static String loginUser = System.getProperty("user.name", 
"");
--- End diff --

Perhaps this can be renamed? Maybe "serverUser" or something to clarify 
this is not the same thing as the user "logged in" on the client. Or at least a 
comment.


> Audit logging in ZooKeeper servers.
> ---
>
> Key: ZOOKEEPER-1260
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1260
> Project: ZooKeeper
>  Issue Type: New Feature
>  Components: server
>Reporter: Mahadev konar
>Assignee: Mohammad Arshad
> Fix For: 3.5.4, 3.6.0
>
> Attachments: ZOOKEEPER-1260-01.patch, zookeeperAuditLogs.pdf
>
>
> Lots of users have had questions on debugging which client changed what znode 
> and what updates went through a znode. We should add audit logging as in 
> Hadoop (look at Namenode Audit logging) to log which client changed what in 
> the zookeeper servers. This could just be a log4j audit logger.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] zookeeper pull request #338: ZOOKEEPER-1260:Audit logging in ZooKeeper serve...

2017-09-01 Thread afine
Github user afine commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/338#discussion_r136660599
  
--- Diff: src/java/main/org/apache/zookeeper/server/ServerCnxnFactory.java 
---
@@ -54,6 +54,7 @@
  */
 static final ByteBuffer closeConn = ByteBuffer.allocate(0);
 
+private static String loginUser = System.getProperty("user.name", 
"");
--- End diff --

Perhaps this can be renamed? Maybe "serverUser" or something to clarify 
this is not the same thing as the user "logged in" on the client. Or at least a 
comment.


---
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] [Updated] (ZOOKEEPER-2888) Reconfig Command Isolates One of the Nodes when All Ports Change

2017-09-01 Thread Cesar Stuardo (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cesar Stuardo updated ZOOKEEPER-2888:
-
Description: 
When we run our Distributed system Model Checking (DMCK) in ZooKeeper v3.5.3 by 
following the workload (complete details attached):

1. start a 5 node cluster (all nodes know each other).
2. wait for the cluster to reach a steady state.
3. issue reconfig command which does not add or remove nodes but changes all 
the ports of the existing cluster (no role change either). 

We observer that in some situations, one of the followers my end up isolated 
since the other nodes change their ports and end up setting up new connections. 
The consequence is similar to the one at 
[ZK-2865|https://issues.apache.org/jira/browse/ZOOKEEPER-2865?jql=] but the 
scenario is different.

We provide further details in the attached document.



  was:
When we run our Distributed system Model Checking (DMCK) in ZooKeeper v3.5.3
by following the workload (complete details attached):
1. start a 5 node cluster (all nodes know each other).
2. wait for the cluster to reach a steady state.
3. issue reconfig command which does not add or remove nodes but changes all 
the ports of the existing cluster (no role change either). 

We observer that in some situations, one of the followers my end up isolated 
since the other nodes change their ports and end up setting up new connections. 
The consequence is similar to the one at 
[ZK-2865|https://issues.apache.org/jira/browse/ZOOKEEPER-2865?jql=] but the 
scenario is different.

We provide further details in the attached document.




> Reconfig Command Isolates One of the Nodes when All Ports Change
> 
>
> Key: ZOOKEEPER-2888
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2888
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: quorum
>Affects Versions: 3.5.3
>Reporter: Cesar Stuardo
> Attachments: ZK-2888.pdf
>
>
> When we run our Distributed system Model Checking (DMCK) in ZooKeeper v3.5.3 
> by following the workload (complete details attached):
> 1. start a 5 node cluster (all nodes know each other).
> 2. wait for the cluster to reach a steady state.
> 3. issue reconfig command which does not add or remove nodes but changes all 
> the ports of the existing cluster (no role change either). 
> We observer that in some situations, one of the followers my end up isolated 
> since the other nodes change their ports and end up setting up new 
> connections. The consequence is similar to the one at 
> [ZK-2865|https://issues.apache.org/jira/browse/ZOOKEEPER-2865?jql=] but the 
> scenario is different.
> We provide further details in the attached document.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (ZOOKEEPER-2888) Reconfig Command Isolates One of the Nodes when All Ports Change

2017-09-01 Thread Cesar Stuardo (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cesar Stuardo updated ZOOKEEPER-2888:
-
Summary: Reconfig Command Isolates One of the Nodes when All Ports Change  
(was: Reconfig Command Isolates One of the Nodes when all ports change)

> Reconfig Command Isolates One of the Nodes when All Ports Change
> 
>
> Key: ZOOKEEPER-2888
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2888
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: quorum
>Affects Versions: 3.5.3
>Reporter: Cesar Stuardo
> Attachments: ZK-2888.pdf
>
>
> When we run our Distributed system Model Checking (DMCK) in ZooKeeper v3.5.3
> by following the workload (complete details attached):
> 1. start a 5 node cluster (all nodes know each other).
> 2. wait for the cluster to reach a steady state.
> 3. issue reconfig command which does not add or remove nodes but changes all 
> the ports of the existing cluster (no role change either). 
> We observer that in some situations, one of the followers my end up isolated 
> since the other nodes change their ports and end up setting up new 
> connections. The consequence is similar to the one at 
> [ZK-2865|https://issues.apache.org/jira/browse/ZOOKEEPER-2865?jql=] but the 
> scenario is different.
> We provide further details in the attached document.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (ZOOKEEPER-2888) Reconfig Command Isolates One of the Nodes when all ports change

2017-09-01 Thread Cesar Stuardo (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cesar Stuardo updated ZOOKEEPER-2888:
-
Summary: Reconfig Command Isolates One of the Nodes when all ports change  
(was: Reconfig Causes Inconsistent Configuration file among the nodes)

> Reconfig Command Isolates One of the Nodes when all ports change
> 
>
> Key: ZOOKEEPER-2888
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2888
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: quorum
>Affects Versions: 3.5.3
>Reporter: Cesar Stuardo
> Attachments: ZK-2888.pdf
>
>
> When we run our Distributed system Model Checking (DMCK) in ZooKeeper v3.5.3
> by following the workload (complete details attached):
> 1. start a 5 node cluster (all nodes know each other).
> 2. wait for the cluster to reach a steady state.
> 3. issue reconfig command which does not add or remove nodes but changes all 
> the ports of the existing cluster (no role change either). 
> We observer that in some situations, one of the followers my end up isolated 
> since the other nodes change their ports and end up setting up new 
> connections. The consequence is similar to the one at 
> [ZK-2865|https://issues.apache.org/jira/browse/ZOOKEEPER-2865?jql=] but the 
> scenario is different.
> We provide further details in the attached document.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (ZOOKEEPER-2888) Reconfig Causes Inconsistent Configuration file among the nodes

2017-09-01 Thread Cesar Stuardo (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cesar Stuardo updated ZOOKEEPER-2888:
-
Attachment: ZK-2888.pdf

> Reconfig Causes Inconsistent Configuration file among the nodes
> ---
>
> Key: ZOOKEEPER-2888
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2888
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: quorum
>Affects Versions: 3.5.3
>Reporter: Cesar Stuardo
> Attachments: ZK-2888.pdf
>
>
> When we run our Distributed system Model Checking (DMCK) in ZooKeeper v3.5.3
> by following the workload (complete details attached):
> 1. start a 5 node cluster (all nodes know each other).
> 2. wait for the cluster to reach a steady state.
> 3. issue reconfig command which does not add or remove nodes but changes all 
> the ports of the existing cluster (no role change either). 
> We observer that in some situations, one of the followers my end up isolated 
> since the other nodes change their ports and end up setting up new 
> connections. The consequence is similar to the one at 
> [ZK-2865|https://issues.apache.org/jira/browse/ZOOKEEPER-2865?jql=] but the 
> scenario is different.
> We provide further details in the attached document.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (ZOOKEEPER-2888) Reconfig Causes Inconsistent Configuration file among the nodes

2017-09-01 Thread Cesar Stuardo (JIRA)
Cesar Stuardo created ZOOKEEPER-2888:


 Summary: Reconfig Causes Inconsistent Configuration file among the 
nodes
 Key: ZOOKEEPER-2888
 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2888
 Project: ZooKeeper
  Issue Type: Bug
  Components: quorum
Affects Versions: 3.5.3
Reporter: Cesar Stuardo


When we run our Distributed system Model Checking (DMCK) in ZooKeeper v3.5.3
by following the workload (complete details attached):
1. start a 5 node cluster (all nodes know each other).
2. wait for the cluster to reach a steady state.
3. issue reconfig command which does not add or remove nodes but changes all 
the ports of the existing cluster (no role change either). 

We observer that in some situations, one of the followers my end up isolated 
since the other nodes change their ports and end up setting up new connections. 
The consequence is similar to the one at 
[ZK-2865|https://issues.apache.org/jira/browse/ZOOKEEPER-2865?jql=] but the 
scenario is different.

We provide further details in the attached document.





--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (ZOOKEEPER-2865) Reconfig Causes Inconsistent Configuration file among the nodes

2017-09-01 Thread Cesar Stuardo (JIRA)

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

Cesar Stuardo commented on ZOOKEEPER-2865:
--

Hello Alexander,

In your first comment, you state that

But what's required is for the cluster to be able to recover from this state - 
the server that didn't get the commit in your scenario should find out about 
the new config and eventually join the cluster. If that doesn't happen then 
that potentially is a bug, but its not clear from the description here.


What do you mean by this? In our scenario, the node wont be able to recover 
since the nodes that it knows at startup are not listening in the same ports 
anymore, thus wont get updated. The only solution is admin intervention.


> Reconfig Causes Inconsistent Configuration file among the nodes
> ---
>
> Key: ZOOKEEPER-2865
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2865
> Project: ZooKeeper
>  Issue Type: Improvement
>  Components: documentation
>Affects Versions: 3.5.3
>Reporter: Jeffrey F. Lukman
>Assignee: Alexander Shraer
>Priority: Trivial
> Fix For: 3.5.4, 3.6.0
>
> Attachments: ZK-2865.pdf
>
>
> When we run our Distributed system Model Checking (DMCK) in ZooKeeper v3.5.3
> by following the workload in ZK-2778:
> - initially start 2 ZooKeeper nodes
> - start 3 new nodes
> - do a reconfiguration (the complete reconfiguration is attached in the 
> document)
> We think our DMCK found this following bug:
> - while one of the just joined nodes has not received the latest 
> configuration update 
> (called as node X), the initial leader node closed its port, 
> therefore causing the node X to be isolated.
> For complete information of the bug, please see the document that is attached.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


Success: ZOOKEEPER- PreCommit Build #990

2017-09-01 Thread Apache Jenkins Server
Build: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/990/

###
## LAST 60 LINES OF THE CONSOLE 
###
[...truncated 73.28 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/990//testReport/
 [exec] Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/990//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
 [exec] Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/990//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] 9e8e12e875948147c0b7534481fb4e0670d52dc3 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: 20 minutes 15 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-2887
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-2887) define dependency versions in build.xml to be easily overridden in build.properties

2017-09-01 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on ZOOKEEPER-2887:
--

+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/990//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/990//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/990//console

This message is automatically generated.

> define dependency versions in build.xml to be easily overridden in 
> build.properties
> ---
>
> Key: ZOOKEEPER-2887
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2887
> Project: ZooKeeper
>  Issue Type: Improvement
>  Components: build
>Reporter: Tamas Penzes
>Assignee: Tamas Penzes
>
> Dependency versions are defined in ivy.xml, which is suboptimal since it is 
> hard to override them from a script.
> If we defined the versions in the main build.xml (just as we do with 
> audience-annotations.version) and use variables in ivy.xml then we could 
> easily override the versions with creating a build.properties file, which 
> mechanism is already built in.
> This way the dependency versions could be replaced by sed or any simple 
> command line tool.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (ZOOKEEPER-2778) Potential server deadlock between follower sync with leader and follower receiving external connection requests.

2017-09-01 Thread Cesar Stuardo (JIRA)

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

Cesar Stuardo edited comment on ZOOKEEPER-2778 at 9/1/17 7:16 PM:
--

Hello,

We are computer science PhD students building a Distributed model checking 
tool. We have been able to reproduce this issue too, when the QuorumPeer thread 
is racing with the Listener thread and gets into deadlock by requesting 
QCNXManager lock while holding QV_LOCK (on the other side, Listener thread 
holds QCNXManager lock and requests QV_LOCK). We also see this potential issue 
with the WorkerSender thread while performing toSend -> connectOne (one 
argument, requesting QCNXManager_LOCK) -> connectOne (two arguments, requesting 
QCNXManager_LOCK) -> initiateConnection -> getElectionAddress (requesting 
QV_LOCK) which can also race with the QuorumPeer thread for the same locks.




was (Author: castuardo):
Hello,

We are computer science PhD students building a Distributed model checking 
tool. We have been able to reproduce this issue too, when the QuorumPeer thread 
is racing with the Listener thread and gets into deadlock by requesting 
QCNXManager lock while holding QV_LOCK (on the other side, Listener thread 
holds QCNXManager lock and requests QV_LOCK). We also see this potential issue 
with the WorkerSender thread while performing toSend -> connectOne (one 
argument, requesting QCNXManager_LOCK) -> connectAll -> connectOne (two 
arguments, requesting QCNXManager_LOCK) -> initiateConnection -> 
getElectionAddress (requesting QV_LOCK) which can also race with the QuorumPeer 
thread for the same locks.



> Potential server deadlock between follower sync with leader and follower 
> receiving external connection requests.
> 
>
> Key: ZOOKEEPER-2778
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2778
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: quorum
>Affects Versions: 3.5.3
>Reporter: Michael Han
>Assignee: Michael Han
>Priority: Critical
>
> It's possible to have a deadlock during recovery phase. 
> Found this issue by analyzing thread dumps of "flaky" ReconfigRecoveryTest 
> [1]. . Here is a sample thread dump that illustrates the state of the 
> execution:
> {noformat}
> [junit]  java.lang.Thread.State: BLOCKED
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.getElectionAddress(QuorumPeer.java:686)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:265)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:445)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.receiveConnection(QuorumCnxManager.java:369)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:642)
> [junit] 
> [junit]  java.lang.Thread.State: BLOCKED
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:472)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.connectNewPeers(QuorumPeer.java:1438)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.setLastSeenQuorumVerifier(QuorumPeer.java:1471)
> [junit] at  
> org.apache.zookeeper.server.quorum.Learner.syncWithLeader(Learner.java:520)
> [junit] at  
> org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:88)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:1133)
> {noformat}
> The dead lock happens between the quorum peer thread which running the 
> follower that doing sync with leader work, and the listener of the qcm of the 
> same quorum peer that doing the receiving connection work. Basically to 
> finish sync with leader, the follower needs to synchronize on both QV_LOCK 
> and the qmc object it owns; while in the receiver thread to finish setup an 
> incoming connection the thread needs to synchronize on both the qcm object 
> the quorum peer owns, and the same QV_LOCK. It's easy to see the problem here 
> is the order of acquiring two locks are different, thus depends on timing / 
> actual execution order, two threads might end up acquiring one lock while 
> holding another.
> [1] 
> org.apache.zookeeper.server.quorum.ReconfigRecoveryTest.testCurrentServersAreObserversInNextConfig



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (ZOOKEEPER-2778) Potential server deadlock between follower sync with leader and follower receiving external connection requests.

2017-09-01 Thread Cesar Stuardo (JIRA)

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

Cesar Stuardo edited comment on ZOOKEEPER-2778 at 9/1/17 7:16 PM:
--

Hello,

We are computer science PhD students building a Distributed model checking 
tool. We have been able to reproduce this issue too, when the QuorumPeer thread 
is racing with the Listener thread and gets into deadlock by requesting 
QCNXManager lock while holding QV_LOCK (on the other side, Listener thread 
holds QCNXManager lock and requests QV_LOCK). We also see this potential issue 
with the WorkerSender thread while performing toSend -> connectOne (one 
argument, requesting QCNXManager_LOCK) -> connectAll -> connectOne (two 
arguments, requesting QCNXManager_LOCK) -> initiateConnection -> 
getElectionAddress (requesting QV_LOCK) which can also race with the QuorumPeer 
thread for the same locks.




was (Author: castuardo):
Hello,

We are computer science PhD students building a Distributed model checking 
tool. We have been able to reproduce this issue too, when the QuorumPeer thread 
is racing with the Listener thread and gets into deadlock by requesting 
QCNXManager lock while holding QV_LOCK (on the other side, Listener thread 
holds QCNXManager lock and requests QV_LOCK). We also see this potential issue 
with the WorkerSender thread while performing toSend -> connectOne (one 
argument, requesting QCNXManager_LOCK) -> connectOne (two arguments, requesting 
QCNXManager_LOCK) -> initiateConnection -> getElectionAddress (requesting 
QV_LOCK) which can also race with the QuorumPeer thread for the same locks.



> Potential server deadlock between follower sync with leader and follower 
> receiving external connection requests.
> 
>
> Key: ZOOKEEPER-2778
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2778
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: quorum
>Affects Versions: 3.5.3
>Reporter: Michael Han
>Assignee: Michael Han
>Priority: Critical
>
> It's possible to have a deadlock during recovery phase. 
> Found this issue by analyzing thread dumps of "flaky" ReconfigRecoveryTest 
> [1]. . Here is a sample thread dump that illustrates the state of the 
> execution:
> {noformat}
> [junit]  java.lang.Thread.State: BLOCKED
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.getElectionAddress(QuorumPeer.java:686)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:265)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:445)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.receiveConnection(QuorumCnxManager.java:369)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:642)
> [junit] 
> [junit]  java.lang.Thread.State: BLOCKED
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:472)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.connectNewPeers(QuorumPeer.java:1438)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.setLastSeenQuorumVerifier(QuorumPeer.java:1471)
> [junit] at  
> org.apache.zookeeper.server.quorum.Learner.syncWithLeader(Learner.java:520)
> [junit] at  
> org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:88)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:1133)
> {noformat}
> The dead lock happens between the quorum peer thread which running the 
> follower that doing sync with leader work, and the listener of the qcm of the 
> same quorum peer that doing the receiving connection work. Basically to 
> finish sync with leader, the follower needs to synchronize on both QV_LOCK 
> and the qmc object it owns; while in the receiver thread to finish setup an 
> incoming connection the thread needs to synchronize on both the qcm object 
> the quorum peer owns, and the same QV_LOCK. It's easy to see the problem here 
> is the order of acquiring two locks are different, thus depends on timing / 
> actual execution order, two threads might end up acquiring one lock while 
> holding another.
> [1] 
> org.apache.zookeeper.server.quorum.ReconfigRecoveryTest.testCurrentServersAreObserversInNextConfig



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (ZOOKEEPER-2778) Potential server deadlock between follower sync with leader and follower receiving external connection requests.

2017-09-01 Thread Cesar Stuardo (JIRA)

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

Cesar Stuardo commented on ZOOKEEPER-2778:
--

Hello,

We are computer science PhD students building a Distributed model checking 
tool. We have been able to reproduce this issue too, when the QuorumPeer thread 
is racing with the Listener thread and gets into deadlock by requesting 
QCNXManager lock while holding QV_LOCK (on the other side, Listener thread 
holds QCNXManager lock and requests QV_LOCK). We also see this potential issue 
with the WorkerSender thread while performing toSend -> connectOne (one 
argument, requesting QCNXManager_LOCK) -> connectOne (two arguments, requesting 
QCNXManager_LOCK) -> initiateConnection -> getElectionAddress (requesting 
QV_LOCK) which can also race with the QuorumPeer thrad for the same locks.



> Potential server deadlock between follower sync with leader and follower 
> receiving external connection requests.
> 
>
> Key: ZOOKEEPER-2778
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2778
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: quorum
>Affects Versions: 3.5.3
>Reporter: Michael Han
>Assignee: Michael Han
>Priority: Critical
>
> It's possible to have a deadlock during recovery phase. 
> Found this issue by analyzing thread dumps of "flaky" ReconfigRecoveryTest 
> [1]. . Here is a sample thread dump that illustrates the state of the 
> execution:
> {noformat}
> [junit]  java.lang.Thread.State: BLOCKED
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.getElectionAddress(QuorumPeer.java:686)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:265)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:445)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.receiveConnection(QuorumCnxManager.java:369)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:642)
> [junit] 
> [junit]  java.lang.Thread.State: BLOCKED
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:472)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.connectNewPeers(QuorumPeer.java:1438)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.setLastSeenQuorumVerifier(QuorumPeer.java:1471)
> [junit] at  
> org.apache.zookeeper.server.quorum.Learner.syncWithLeader(Learner.java:520)
> [junit] at  
> org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:88)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:1133)
> {noformat}
> The dead lock happens between the quorum peer thread which running the 
> follower that doing sync with leader work, and the listener of the qcm of the 
> same quorum peer that doing the receiving connection work. Basically to 
> finish sync with leader, the follower needs to synchronize on both QV_LOCK 
> and the qmc object it owns; while in the receiver thread to finish setup an 
> incoming connection the thread needs to synchronize on both the qcm object 
> the quorum peer owns, and the same QV_LOCK. It's easy to see the problem here 
> is the order of acquiring two locks are different, thus depends on timing / 
> actual execution order, two threads might end up acquiring one lock while 
> holding another.
> [1] 
> org.apache.zookeeper.server.quorum.ReconfigRecoveryTest.testCurrentServersAreObserversInNextConfig



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (ZOOKEEPER-2778) Potential server deadlock between follower sync with leader and follower receiving external connection requests.

2017-09-01 Thread Cesar Stuardo (JIRA)

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

Cesar Stuardo edited comment on ZOOKEEPER-2778 at 9/1/17 7:15 PM:
--

Hello,

We are computer science PhD students building a Distributed model checking 
tool. We have been able to reproduce this issue too, when the QuorumPeer thread 
is racing with the Listener thread and gets into deadlock by requesting 
QCNXManager lock while holding QV_LOCK (on the other side, Listener thread 
holds QCNXManager lock and requests QV_LOCK). We also see this potential issue 
with the WorkerSender thread while performing toSend -> connectOne (one 
argument, requesting QCNXManager_LOCK) -> connectOne (two arguments, requesting 
QCNXManager_LOCK) -> initiateConnection -> getElectionAddress (requesting 
QV_LOCK) which can also race with the QuorumPeer thread for the same locks.




was (Author: castuardo):
Hello,

We are computer science PhD students building a Distributed model checking 
tool. We have been able to reproduce this issue too, when the QuorumPeer thread 
is racing with the Listener thread and gets into deadlock by requesting 
QCNXManager lock while holding QV_LOCK (on the other side, Listener thread 
holds QCNXManager lock and requests QV_LOCK). We also see this potential issue 
with the WorkerSender thread while performing toSend -> connectOne (one 
argument, requesting QCNXManager_LOCK) -> connectOne (two arguments, requesting 
QCNXManager_LOCK) -> initiateConnection -> getElectionAddress (requesting 
QV_LOCK) which can also race with the QuorumPeer thrad for the same locks.



> Potential server deadlock between follower sync with leader and follower 
> receiving external connection requests.
> 
>
> Key: ZOOKEEPER-2778
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2778
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: quorum
>Affects Versions: 3.5.3
>Reporter: Michael Han
>Assignee: Michael Han
>Priority: Critical
>
> It's possible to have a deadlock during recovery phase. 
> Found this issue by analyzing thread dumps of "flaky" ReconfigRecoveryTest 
> [1]. . Here is a sample thread dump that illustrates the state of the 
> execution:
> {noformat}
> [junit]  java.lang.Thread.State: BLOCKED
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.getElectionAddress(QuorumPeer.java:686)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:265)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:445)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.receiveConnection(QuorumCnxManager.java:369)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:642)
> [junit] 
> [junit]  java.lang.Thread.State: BLOCKED
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:472)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.connectNewPeers(QuorumPeer.java:1438)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.setLastSeenQuorumVerifier(QuorumPeer.java:1471)
> [junit] at  
> org.apache.zookeeper.server.quorum.Learner.syncWithLeader(Learner.java:520)
> [junit] at  
> org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:88)
> [junit] at  
> org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:1133)
> {noformat}
> The dead lock happens between the quorum peer thread which running the 
> follower that doing sync with leader work, and the listener of the qcm of the 
> same quorum peer that doing the receiving connection work. Basically to 
> finish sync with leader, the follower needs to synchronize on both QV_LOCK 
> and the qmc object it owns; while in the receiver thread to finish setup an 
> incoming connection the thread needs to synchronize on both the qcm object 
> the quorum peer owns, and the same QV_LOCK. It's easy to see the problem here 
> is the order of acquiring two locks are different, thus depends on timing / 
> actual execution order, two threads might end up acquiring one lock while 
> holding another.
> [1] 
> org.apache.zookeeper.server.quorum.ReconfigRecoveryTest.testCurrentServersAreObserversInNextConfig



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (ZOOKEEPER-2887) define dependency versions in build.xml to be easily overridden in build.properties

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-2887:
---

GitHub user tamaashu opened a pull request:

https://github.com/apache/zookeeper/pull/357

ZOOKEEPER-2887: define dependency versions in build.xml to be easily …

…overridden in build.properties

If the dependency versions are defined in build.xml they can be easily
overridden by re-defining them in build.properties
This process can be useful to avoid classpath clashes among different
Hadoop components

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/tamaashu/zookeeper ZOOKEEPER-2887

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/zookeeper/pull/357.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 #357


commit 6cf315fdd6e7df2d091a5cd3a9753cb40d4357fe
Author: Tamas Penzes 
Date:   2017-09-01T18:50:23Z

ZOOKEEPER-2887: define dependency versions in build.xml to be easily 
overridden in build.properties

If the dependency versions are defined in build.xml they can be easily
overridden by re-defining them in build.properties
This process can be useful to avoid classpath clashes among different
Hadoop components




> define dependency versions in build.xml to be easily overridden in 
> build.properties
> ---
>
> Key: ZOOKEEPER-2887
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2887
> Project: ZooKeeper
>  Issue Type: Improvement
>  Components: build
>Reporter: Tamas Penzes
>Assignee: Tamas Penzes
>
> Dependency versions are defined in ivy.xml, which is suboptimal since it is 
> hard to override them from a script.
> If we defined the versions in the main build.xml (just as we do with 
> audience-annotations.version) and use variables in ivy.xml then we could 
> easily override the versions with creating a build.properties file, which 
> mechanism is already built in.
> This way the dependency versions could be replaced by sed or any simple 
> command line tool.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] zookeeper pull request #357: ZOOKEEPER-2887: define dependency versions in b...

2017-09-01 Thread tamaashu
GitHub user tamaashu opened a pull request:

https://github.com/apache/zookeeper/pull/357

ZOOKEEPER-2887: define dependency versions in build.xml to be easily …

…overridden in build.properties

If the dependency versions are defined in build.xml they can be easily
overridden by re-defining them in build.properties
This process can be useful to avoid classpath clashes among different
Hadoop components

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/tamaashu/zookeeper ZOOKEEPER-2887

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/zookeeper/pull/357.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 #357


commit 6cf315fdd6e7df2d091a5cd3a9753cb40d4357fe
Author: Tamas Penzes 
Date:   2017-09-01T18:50:23Z

ZOOKEEPER-2887: define dependency versions in build.xml to be easily 
overridden in build.properties

If the dependency versions are defined in build.xml they can be easily
overridden by re-defining them in build.properties
This process can be useful to avoid classpath clashes among different
Hadoop components




---
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] [Updated] (ZOOKEEPER-2887) define dependency versions in build.xml to be easily overridden in build.properties

2017-09-01 Thread Tamas Penzes (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tamas Penzes updated ZOOKEEPER-2887:

Summary: define dependency versions in build.xml to be easily overridden in 
build.properties  (was: define dependency versions in build.xml to be easily 
overridden)

> define dependency versions in build.xml to be easily overridden in 
> build.properties
> ---
>
> Key: ZOOKEEPER-2887
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2887
> Project: ZooKeeper
>  Issue Type: Improvement
>  Components: build
>Reporter: Tamas Penzes
>Assignee: Tamas Penzes
>
> Dependency versions are defined in ivy.xml, which is suboptimal since it is 
> hard to override them from a script.
> If we defined the versions in the main build.xml (just as we do with 
> audience-annotations.version) and use variables in ivy.xml then we could 
> easily override the versions with creating a build.properties file, which 
> mechanism is already built in.
> This way the dependency versions could be replaced by sed or any simple 
> command line tool.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (ZOOKEEPER-1416) Persistent Recursive Watch

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-1416:
---

Github user skamille commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/136#discussion_r136637514
  
--- Diff: src/java/main/org/apache/zookeeper/server/WatchManager.java ---
@@ -40,50 +40,110 @@
 class WatchManager {
 private static final Logger LOG = 
LoggerFactory.getLogger(WatchManager.class);
 
-private final HashMap> watchTable =
-new HashMap>();
+enum Type {
+STANDARD() {
+@Override
+boolean isPersistent() {
+return false;
+}
+
+@Override
+boolean isRecursive() {
+return false;
+}
+},
+PERSISTENT() {
+@Override
+boolean isPersistent() {
+return true;
+}
+
+@Override
+boolean isRecursive() {
+return false;
+}
+},
+PERSISTENT_RECURSIVE() {
+@Override
+boolean isPersistent() {
+return true;
+}
+
+@Override
+boolean isRecursive() {
+return true;
+}
+}
+;
+
+abstract boolean isPersistent();
+abstract boolean isRecursive();
+}
+
+private final Map> watchTable =
+new HashMap<>();
+
+private final Map> watch2Paths =
+new HashMap<>();
 
-private final HashMap> watch2Paths =
-new HashMap>();
+private int recursiveWatchQty = 0;// guarded by sync
+
+// visible for testing
+synchronized int getRecursiveWatchQty() {
+return recursiveWatchQty;
+}
 
 synchronized int size(){
 int result = 0;
-for(Set watches : watchTable.values()) {
+for(Map watches : watchTable.values()) {
 result += watches.size();
 }
 return result;
 }
 
-synchronized void addWatch(String path, Watcher watcher) {
-HashSet list = watchTable.get(path);
+synchronized void addWatch(String path, Watcher watcher, 
WatchManager.Type type) {
+Map list = watchTable.get(path);
 if (list == null) {
 // don't waste memory if there are few watches on a node
 // rehash when the 4th entry is added, doubling size thereafter
 // seems like a good compromise
-list = new HashSet(4);
+list = new HashMap<>(4);
--- End diff --

Does the assumption still hold re: memory management now that we have a 
hashmap instead of a hashset?


> Persistent Recursive Watch
> --
>
> Key: ZOOKEEPER-1416
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1416
> Project: ZooKeeper
>  Issue Type: Improvement
>  Components: c client, documentation, java client, server
>Reporter: Phillip Liu
>Assignee: Jordan Zimmerman
> Attachments: ZOOKEEPER-1416.patch, ZOOKEEPER-1416.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> h4. The Problem
> A ZooKeeper Watch can be placed on a single znode and when the znode changes 
> a Watch event is sent to the client. If there are thousands of znodes being 
> watched, when a client (re)connect, it would have to send thousands of watch 
> requests. At Facebook, we have this problem storing information for thousands 
> of db shards. Consequently a naming service that consumes the db shard 
> definition issues thousands of watch requests each time the service starts 
> and changes client watcher.
> h4. Proposed Solution
> We add the notion of a Persistent Recursive Watch in ZooKeeper. Persistent 
> means no Watch reset is necessary after a watch-fire. Recursive means the 
> Watch applies to the node and descendant nodes. A Persistent Recursive Watch 
> behaves as follows:
> # Recursive Watch supports all Watch semantics: CHILDREN, DATA, and EXISTS.
> # CHILDREN and DATA Recursive Watches can be placed on any znode.
> # EXISTS Recursive Watches can be placed on any path.
> # A Recursive Watch behaves like a auto-watch registrar on the server side. 
> Setting a  Recursive Watch means to set watches on all descendant znodes.
> # When a watch on a descendant fires, no subsequent event is fired until a 
> corresponding getData(..) on the znode is called, then Recursive Watch 
> automical

[GitHub] zookeeper pull request #136: [ZOOKEEPER-1416] Persistent Recursive Watch

2017-09-01 Thread skamille
Github user skamille commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/136#discussion_r136637514
  
--- Diff: src/java/main/org/apache/zookeeper/server/WatchManager.java ---
@@ -40,50 +40,110 @@
 class WatchManager {
 private static final Logger LOG = 
LoggerFactory.getLogger(WatchManager.class);
 
-private final HashMap> watchTable =
-new HashMap>();
+enum Type {
+STANDARD() {
+@Override
+boolean isPersistent() {
+return false;
+}
+
+@Override
+boolean isRecursive() {
+return false;
+}
+},
+PERSISTENT() {
+@Override
+boolean isPersistent() {
+return true;
+}
+
+@Override
+boolean isRecursive() {
+return false;
+}
+},
+PERSISTENT_RECURSIVE() {
+@Override
+boolean isPersistent() {
+return true;
+}
+
+@Override
+boolean isRecursive() {
+return true;
+}
+}
+;
+
+abstract boolean isPersistent();
+abstract boolean isRecursive();
+}
+
+private final Map> watchTable =
+new HashMap<>();
+
+private final Map> watch2Paths =
+new HashMap<>();
 
-private final HashMap> watch2Paths =
-new HashMap>();
+private int recursiveWatchQty = 0;// guarded by sync
+
+// visible for testing
+synchronized int getRecursiveWatchQty() {
+return recursiveWatchQty;
+}
 
 synchronized int size(){
 int result = 0;
-for(Set watches : watchTable.values()) {
+for(Map watches : watchTable.values()) {
 result += watches.size();
 }
 return result;
 }
 
-synchronized void addWatch(String path, Watcher watcher) {
-HashSet list = watchTable.get(path);
+synchronized void addWatch(String path, Watcher watcher, 
WatchManager.Type type) {
+Map list = watchTable.get(path);
 if (list == null) {
 // don't waste memory if there are few watches on a node
 // rehash when the 4th entry is added, doubling size thereafter
 // seems like a good compromise
-list = new HashSet(4);
+list = new HashMap<>(4);
--- End diff --

Does the assumption still hold re: memory management now that we have a 
hashmap instead of a hashset?


---
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] [Updated] (ZOOKEEPER-2887) define dependency versions in build.xml to be easily overridden

2017-09-01 Thread Tamas Penzes (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tamas Penzes updated ZOOKEEPER-2887:

Description: 
Dependency versions are defined in ivy.xml, which is suboptimal since it is 
hard to override them from a script.

If we defined the versions in the main build.xml (just as we do with 
audience-annotations.version) and use variables in ivy.xml then we could easily 
override the versions with creating a build.properties file, which mechanism is 
already built in.
This way the dependency versions could be replaced by sed or any simple command 
line tool.

  was:
Dependency versions are defined in ivy.xml, which is suboptimal since it is 
hard to override them from a script.

If we defined the versions in the main build.xml and use variables in ivy.xml 
then we could easily override the versions with creating a build.properties 
file, which mechanism is already built in.
This way the dependency versions could be replaced by sed or any simple command 
line tool.


> define dependency versions in build.xml to be easily overridden
> ---
>
> Key: ZOOKEEPER-2887
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2887
> Project: ZooKeeper
>  Issue Type: Improvement
>  Components: build
>Reporter: Tamas Penzes
>Assignee: Tamas Penzes
>
> Dependency versions are defined in ivy.xml, which is suboptimal since it is 
> hard to override them from a script.
> If we defined the versions in the main build.xml (just as we do with 
> audience-annotations.version) and use variables in ivy.xml then we could 
> easily override the versions with creating a build.properties file, which 
> mechanism is already built in.
> This way the dependency versions could be replaced by sed or any simple 
> command line tool.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (ZOOKEEPER-2887) define dependency versions in build.xml to be easily overridden

2017-09-01 Thread Tamas Penzes (JIRA)
Tamas Penzes created ZOOKEEPER-2887:
---

 Summary: define dependency versions in build.xml to be easily 
overridden
 Key: ZOOKEEPER-2887
 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2887
 Project: ZooKeeper
  Issue Type: Improvement
  Components: build
Reporter: Tamas Penzes
Assignee: Tamas Penzes


Dependency versions are defined in ivy.xml, which is suboptimal since it is 
hard to override them from a script.

If we defined the versions in the main build.xml and use variables in ivy.xml 
then we could easily override the versions with creating a build.properties 
file, which mechanism is already built in.
This way the dependency versions could be replaced by sed or any simple command 
line tool.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Assigned] (ZOOKEEPER-1363) Categorise unit tests by 'test-commit', 'full-test' etc

2017-09-01 Thread Mark Fenes (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-1363?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Fenes reassigned ZOOKEEPER-1363:
-

Assignee: Mark Fenes

> Categorise unit tests by 'test-commit', 'full-test' etc
> ---
>
> Key: ZOOKEEPER-1363
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1363
> Project: ZooKeeper
>  Issue Type: Improvement
>  Components: build, tests
>Reporter: Henry Robinson
>Assignee: Mark Fenes
>  Labels: newbie
>
> As discussed on the list, it would be good to split the Java test suite into 
> categories so that it's easy to run a small set of unit tests against a 
> patch, and to leave Jenkins to run the full suite of stress tests etc. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


Success: ZOOKEEPER- PreCommit Build #989

2017-09-01 Thread Apache Jenkins Server
Build: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/989/

###
## LAST 60 LINES OF THE CONSOLE 
###
[...truncated 72.87 MB...]
 [exec] 
 [exec] +1 @author.  The patch does not contain any @author tags.
 [exec] 
 [exec] +1 tests included.  The patch appears to include 74 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/989//testReport/
 [exec] Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/989//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
 [exec] Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/989//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] 5ae3a0ff66845986bd6dbfe2a2f263c6ebd620f8 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: 17 minutes 57 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-2630
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-2630) Use interface type instead of implementation type when appropriate.

2017-09-01 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on ZOOKEEPER-2630:
--

+1 overall.  GitHub Pull Request  Build
  

+1 @author.  The patch does not contain any @author tags.

+1 tests included.  The patch appears to include 74 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/989//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/989//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/989//console

This message is automatically generated.

> Use interface type instead of implementation type when appropriate.
> ---
>
> Key: ZOOKEEPER-2630
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2630
> Project: ZooKeeper
>  Issue Type: Improvement
>Reporter: Michael Han
>Assignee: Tamas Penzes
>Priority: Trivial
>  Labels: newbie, refactoring
>
> There are a couple of places in code base where we declare a field / variable 
> as implementation type (i.e. HashMap, HashSet) instead of interface type 
> (i.e. Map, Set), while in other places we do the opposite by declaring as 
> interface type. A quick check indicates that most if not all of these places 
> could be updated so we have a consistent style over the code base (prefer 
> using interface type), which is also a good coding style to stick per best 
> practice.
> See more info on https://github.com/apache/zookeeper/pull/102



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (ZOOKEEPER-2809) Unnecessary stack-trace in server when the client disconnect unexpectedly

2017-09-01 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on ZOOKEEPER-2809:
--

+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/987//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/987//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/987//console

This message is automatically generated.

> Unnecessary stack-trace in server when the client disconnect unexpectedly
> -
>
> Key: ZOOKEEPER-2809
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2809
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.8
>Reporter: Paul Millar
>Assignee: Mark Fenes
>Priority: Minor
> Fix For: 3.5.0
>
>
> In ZK 3.4.x, if the client disconnects unexpectedly then the server logs this 
> with a stack-trace (see 
> src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java:356).
> This is unfortunate as we are using an embedded ZK server in our project (in 
> a test environment) and we consider all stack-traces as bugs.
> I noticed that ZK 3.5 and later no longer log a stack-trace.  This change is 
> due to commit 6206b495 (in branch-3.5), which adds ZOOKEEPER-1504 and seems 
> to fix this issue almost as a side-effect; a similar change in master has the 
> same effect.
> I was wondering if the change in how EndOfStreamException is logged (i.e., 
> logging the message without a stack-trace) could be back-ported to 3.4 
> branch, so could be included in the next 3.4 release.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


Success: ZOOKEEPER- PreCommit Build #987

2017-09-01 Thread Apache Jenkins Server
Build: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/987/

###
## LAST 60 LINES OF THE CONSOLE 
###
[...truncated 33.30 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/987//testReport/
 [exec] Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/987//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
 [exec] Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/987//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] 690d086ec2389f45438634d49f3c762326d487b8 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: 54 minutes 20 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-2809
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-2630) Use interface type instead of implementation type when appropriate.

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-2630:
---

Github user tamaashu commented on the issue:

https://github.com/apache/zookeeper/pull/354
  
fixed the issues with the imports


> Use interface type instead of implementation type when appropriate.
> ---
>
> Key: ZOOKEEPER-2630
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2630
> Project: ZooKeeper
>  Issue Type: Improvement
>Reporter: Michael Han
>Assignee: Tamas Penzes
>Priority: Trivial
>  Labels: newbie, refactoring
>
> There are a couple of places in code base where we declare a field / variable 
> as implementation type (i.e. HashMap, HashSet) instead of interface type 
> (i.e. Map, Set), while in other places we do the opposite by declaring as 
> interface type. A quick check indicates that most if not all of these places 
> could be updated so we have a consistent style over the code base (prefer 
> using interface type), which is also a good coding style to stick per best 
> practice.
> See more info on https://github.com/apache/zookeeper/pull/102



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] zookeeper issue #354: ZOOKEEPER-2630: Use interface type instead of implemen...

2017-09-01 Thread tamaashu
Github user tamaashu commented on the issue:

https://github.com/apache/zookeeper/pull/354
  
fixed the issues with the imports


---
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 #988

2017-09-01 Thread Apache Jenkins Server
Build: https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/988/

###
## LAST 60 LINES OF THE CONSOLE 
###
[...truncated 71.22 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/988//testReport/
 [exec] Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/988//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
 [exec] Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/988//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] 9ec44764a00203e8a578fed21231fe08a46d0fc8 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: 17 minutes 36 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-2572
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-2572) Potential resource leak in FileTxnLog.truncate

2017-09-01 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on ZOOKEEPER-2572:
--

+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/988//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/988//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/988//console

This message is automatically generated.

> Potential resource leak in FileTxnLog.truncate
> --
>
> Key: ZOOKEEPER-2572
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2572
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.9, 3.5.2
>Reporter: Michael Han
>Assignee: gaoshu
> Fix For: 3.5.4, 3.6.0, 3.4.11
>
>
> In FileTxnLog.truncate, we have:
> {code}
> public boolean truncate(long zxid) throws IOException {
> FileTxnIterator itr = null;
> try {
> itr = new FileTxnIterator(this.logDir, zxid);
> PositionInputStream input = itr.inputStream;
> if(input == null) {
> throw new IOException("No log files found to truncate! This 
> could " +
> "happen if you still have snapshots from an old setup 
> or " +
> "log files were deleted accidentally or dataLogDir 
> was changed in zoo.cfg.");
> }
> long pos = input.getPosition();
> // now, truncate at the current position
> RandomAccessFile raf=new RandomAccessFile(itr.logFile,"rw");
> raf.setLength(pos);
> raf.close();
> while(itr.goToNextLog()) {
> if (!itr.logFile.delete()) {
> LOG.warn("Unable to truncate {}", itr.logFile);
> }
> }
> } finally {
> close(itr);
> }
> return true;
> }
> {code}
> {{raf}} here can be potentially in a state of not closed after leaving the 
> method, if there is an (IO) exception thrown from setLength.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Assigned] (ZOOKEEPER-2572) Potential resource leak in FileTxnLog.truncate

2017-09-01 Thread gaoshu (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

gaoshu reassigned ZOOKEEPER-2572:
-

Assignee: gaoshu

> Potential resource leak in FileTxnLog.truncate
> --
>
> Key: ZOOKEEPER-2572
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2572
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.9, 3.5.2
>Reporter: Michael Han
>Assignee: gaoshu
> Fix For: 3.5.4, 3.6.0, 3.4.11
>
>
> In FileTxnLog.truncate, we have:
> {code}
> public boolean truncate(long zxid) throws IOException {
> FileTxnIterator itr = null;
> try {
> itr = new FileTxnIterator(this.logDir, zxid);
> PositionInputStream input = itr.inputStream;
> if(input == null) {
> throw new IOException("No log files found to truncate! This 
> could " +
> "happen if you still have snapshots from an old setup 
> or " +
> "log files were deleted accidentally or dataLogDir 
> was changed in zoo.cfg.");
> }
> long pos = input.getPosition();
> // now, truncate at the current position
> RandomAccessFile raf=new RandomAccessFile(itr.logFile,"rw");
> raf.setLength(pos);
> raf.close();
> while(itr.goToNextLog()) {
> if (!itr.logFile.delete()) {
> LOG.warn("Unable to truncate {}", itr.logFile);
> }
> }
> } finally {
> close(itr);
> }
> return true;
> }
> {code}
> {{raf}} here can be potentially in a state of not closed after leaving the 
> method, if there is an (IO) exception thrown from setLength.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (ZOOKEEPER-2572) Potential resource leak in FileTxnLog.truncate

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-2572:
---

GitHub user bitgaoshu opened a pull request:

https://github.com/apache/zookeeper/pull/356

ZOOKEEPER-2572: Fix potential resource leak in FileTxnLog.truncate



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/bitgaoshu/zookeeper fix/ZOOKEEPER-2572

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/zookeeper/pull/356.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 #356


commit 4c21eb8bc56ed4d54dac8d1a16f054f08f2efc2e
Author: bitgaoshu 
Date:   2017-08-31T12:24:40Z

ZOOKEEPER-2572: Fix potential resource leak in FileTxnLog.truncate




> Potential resource leak in FileTxnLog.truncate
> --
>
> Key: ZOOKEEPER-2572
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2572
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.9, 3.5.2
>Reporter: Michael Han
> Fix For: 3.5.4, 3.6.0, 3.4.11
>
>
> In FileTxnLog.truncate, we have:
> {code}
> public boolean truncate(long zxid) throws IOException {
> FileTxnIterator itr = null;
> try {
> itr = new FileTxnIterator(this.logDir, zxid);
> PositionInputStream input = itr.inputStream;
> if(input == null) {
> throw new IOException("No log files found to truncate! This 
> could " +
> "happen if you still have snapshots from an old setup 
> or " +
> "log files were deleted accidentally or dataLogDir 
> was changed in zoo.cfg.");
> }
> long pos = input.getPosition();
> // now, truncate at the current position
> RandomAccessFile raf=new RandomAccessFile(itr.logFile,"rw");
> raf.setLength(pos);
> raf.close();
> while(itr.goToNextLog()) {
> if (!itr.logFile.delete()) {
> LOG.warn("Unable to truncate {}", itr.logFile);
> }
> }
> } finally {
> close(itr);
> }
> return true;
> }
> {code}
> {{raf}} here can be potentially in a state of not closed after leaving the 
> method, if there is an (IO) exception thrown from setLength.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] zookeeper pull request #356: ZOOKEEPER-2572: Fix potential resource leak in ...

2017-09-01 Thread bitgaoshu
GitHub user bitgaoshu opened a pull request:

https://github.com/apache/zookeeper/pull/356

ZOOKEEPER-2572: Fix potential resource leak in FileTxnLog.truncate



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/bitgaoshu/zookeeper fix/ZOOKEEPER-2572

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/zookeeper/pull/356.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 #356


commit 4c21eb8bc56ed4d54dac8d1a16f054f08f2efc2e
Author: bitgaoshu 
Date:   2017-08-31T12:24:40Z

ZOOKEEPER-2572: Fix potential resource leak in FileTxnLog.truncate




---
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-2809) Unnecessary stack-trace in server when the client disconnect unexpectedly

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-2809:
---

GitHub user mfenes opened a pull request:

https://github.com/apache/zookeeper/pull/355

ZOOKEEPER-2809: Unnecessary stack-trace in server when the client dis…

Unnecessary stack-trace in server when the client disconnects unexpectedly.

Backport from master, branch-3.5 to branch-3.4. Removes unnecessary stack 
traces from the catch blocks of method doIO in NIOServerCnxn. For 
EndOfStreamException stack trace is replaced with logging only the message and 
also contains the removal of stack traces for exceptions CancelledKeyException 
and IOException as per commit 6206b495 referenced in the ticket.
This change is necessary as there are projects which consider all stack 
traces as bugs. 
For CancelledKeyException and IOException developers are still able to see 
stack traces at log level Debug.
This change is in sync with master and branch-3.5.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/mfenes/zookeeper ZOOKEEPER-2809

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/zookeeper/pull/355.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 #355


commit 81cd3cc42d85371bd24e427bedab1740695be819
Author: Mark Fenes 
Date:   2017-08-31T12:11:09Z

ZOOKEEPER-2809: Unnecessary stack-trace in server when the client 
disconnect unexpectedly




> Unnecessary stack-trace in server when the client disconnect unexpectedly
> -
>
> Key: ZOOKEEPER-2809
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2809
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.8
>Reporter: Paul Millar
>Assignee: Mark Fenes
>Priority: Minor
> Fix For: 3.5.0
>
>
> In ZK 3.4.x, if the client disconnects unexpectedly then the server logs this 
> with a stack-trace (see 
> src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java:356).
> This is unfortunate as we are using an embedded ZK server in our project (in 
> a test environment) and we consider all stack-traces as bugs.
> I noticed that ZK 3.5 and later no longer log a stack-trace.  This change is 
> due to commit 6206b495 (in branch-3.5), which adds ZOOKEEPER-1504 and seems 
> to fix this issue almost as a side-effect; a similar change in master has the 
> same effect.
> I was wondering if the change in how EndOfStreamException is logged (i.e., 
> logging the message without a stack-trace) could be back-ported to 3.4 
> branch, so could be included in the next 3.4 release.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] zookeeper pull request #355: ZOOKEEPER-2809: Unnecessary stack-trace in serv...

2017-09-01 Thread mfenes
GitHub user mfenes opened a pull request:

https://github.com/apache/zookeeper/pull/355

ZOOKEEPER-2809: Unnecessary stack-trace in server when the client dis…

Unnecessary stack-trace in server when the client disconnects unexpectedly.

Backport from master, branch-3.5 to branch-3.4. Removes unnecessary stack 
traces from the catch blocks of method doIO in NIOServerCnxn. For 
EndOfStreamException stack trace is replaced with logging only the message and 
also contains the removal of stack traces for exceptions CancelledKeyException 
and IOException as per commit 6206b495 referenced in the ticket.
This change is necessary as there are projects which consider all stack 
traces as bugs. 
For CancelledKeyException and IOException developers are still able to see 
stack traces at log level Debug.
This change is in sync with master and branch-3.5.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/mfenes/zookeeper ZOOKEEPER-2809

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/zookeeper/pull/355.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 #355


commit 81cd3cc42d85371bd24e427bedab1740695be819
Author: Mark Fenes 
Date:   2017-08-31T12:11:09Z

ZOOKEEPER-2809: Unnecessary stack-trace in server when the client 
disconnect unexpectedly




---
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-2630) Use interface type instead of implementation type when appropriate.

2017-09-01 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ZOOKEEPER-2630:
---

Github user tamaashu commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/354#discussion_r136557551
  
--- Diff: src/java/main/org/apache/jute/compiler/JRecord.java ---
@@ -21,9 +21,7 @@
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
+import java.util.*;
--- End diff --

working on the fix in my next commit


> Use interface type instead of implementation type when appropriate.
> ---
>
> Key: ZOOKEEPER-2630
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2630
> Project: ZooKeeper
>  Issue Type: Improvement
>Reporter: Michael Han
>Assignee: Tamas Penzes
>Priority: Trivial
>  Labels: newbie, refactoring
>
> There are a couple of places in code base where we declare a field / variable 
> as implementation type (i.e. HashMap, HashSet) instead of interface type 
> (i.e. Map, Set), while in other places we do the opposite by declaring as 
> interface type. A quick check indicates that most if not all of these places 
> could be updated so we have a consistent style over the code base (prefer 
> using interface type), which is also a good coding style to stick per best 
> practice.
> See more info on https://github.com/apache/zookeeper/pull/102



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


ZooKeeper-trunk-jdk8 - Build # 1187 - Still Failing

2017-09-01 Thread Apache Jenkins Server
See https://builds.apache.org/job/ZooKeeper-trunk-jdk8/1187/

###
## LAST 60 LINES OF THE CONSOLE 
###
[...truncated 65.87 MB...]
[junit] java.net.ConnectException: Connection refused: 
127.0.0.1/127.0.0.1:19350
[junit] at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
[junit] at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:152)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:105)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:79)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)
[junit] at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[junit] at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
[junit] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[junit] at java.lang.Thread.run(Thread.java:748)
[junit] 2017-09-01 11:56:38,664 [myid:] - INFO  [New I/O boss 
#2601:ClientCnxnSocketNetty@208] - channel is told closing
[junit] 2017-09-01 11:56:38,664 [myid:127.0.0.1:19350] - INFO  
[main-SendThread(127.0.0.1:19350):ClientCnxn$SendThread@1231] - channel for 
sessionid 0x105b6b7e4be0001 is lost, closing socket connection and attempting 
reconnect
[junit] 2017-09-01 11:56:38,741 [myid:127.0.0.1:19365] - INFO  
[main-SendThread(127.0.0.1:19365):ClientCnxn$SendThread@1113] - Opening socket 
connection to server 127.0.0.1/127.0.0.1:19365. Will not attempt to 
authenticate using SASL (unknown error)
[junit] 2017-09-01 11:56:38,742 [myid:] - INFO  [New I/O boss 
#3791:ClientCnxnSocketNetty$1@127] - future isn't success, cause: {}
[junit] java.net.ConnectException: Connection refused: 
127.0.0.1/127.0.0.1:19365
[junit] at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
[junit] at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:152)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:105)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:79)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)
[junit] at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[junit] at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
[junit] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[junit] at java.lang.Thread.run(Thread.java:748)
[junit] 2017-09-01 11:56:38,742 [myid:] - WARN  [New I/O boss 
#3791:ClientCnxnSocketNetty$ZKClientHandler@439] - Exception caught: [id: 
0xde073599] EXCEPTION: java.net.ConnectException: Connection refused: 
127.0.0.1/127.0.0.1:19365
[junit] java.net.ConnectException: Connection refused: 
127.0.0.1/127.0.0.1:19365
[junit] at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
[junit] at 
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.connect(NioClientBoss.java:152)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.processSelectedKeys(NioClientBoss.java:105)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:79)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
[junit] at 
org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)
[junit] at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[junit] at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
[junit] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[junit] at java.lang.Thread.run(Thread.java:748)
[junit] 2017-09-01 11:56:38,743 [myid:] 

[GitHub] zookeeper pull request #354: ZOOKEEPER-2630: Use interface type instead of i...

2017-09-01 Thread tamaashu
Github user tamaashu commented on a diff in the pull request:

https://github.com/apache/zookeeper/pull/354#discussion_r136557551
  
--- Diff: src/java/main/org/apache/jute/compiler/JRecord.java ---
@@ -21,9 +21,7 @@
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
+import java.util.*;
--- End diff --

working on the fix in my next commit


---
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-2572) Potential resource leak in FileTxnLog.truncate

2017-09-01 Thread gaoshu (JIRA)

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

gaoshu commented on ZOOKEEPER-2572:
---

In addition, I think the {{itr.logFile.delete() }} can be replaced by 
{{Files.delete(itr.logFile.toPath());}}. If failed, Files.delete can throw an 
exception, which this is useful for error reporting and to diagnosed why a file 
cannot be deleted. Then the function will return void if successful, or throw 
an exception.  Then we can log the detailed error and rethrow it.

> Potential resource leak in FileTxnLog.truncate
> --
>
> Key: ZOOKEEPER-2572
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2572
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.9, 3.5.2
>Reporter: Michael Han
> Fix For: 3.5.4, 3.6.0, 3.4.11
>
>
> In FileTxnLog.truncate, we have:
> {code}
> public boolean truncate(long zxid) throws IOException {
> FileTxnIterator itr = null;
> try {
> itr = new FileTxnIterator(this.logDir, zxid);
> PositionInputStream input = itr.inputStream;
> if(input == null) {
> throw new IOException("No log files found to truncate! This 
> could " +
> "happen if you still have snapshots from an old setup 
> or " +
> "log files were deleted accidentally or dataLogDir 
> was changed in zoo.cfg.");
> }
> long pos = input.getPosition();
> // now, truncate at the current position
> RandomAccessFile raf=new RandomAccessFile(itr.logFile,"rw");
> raf.setLength(pos);
> raf.close();
> while(itr.goToNextLog()) {
> if (!itr.logFile.delete()) {
> LOG.warn("Unable to truncate {}", itr.logFile);
> }
> }
> } finally {
> close(itr);
> }
> return true;
> }
> {code}
> {{raf}} here can be potentially in a state of not closed after leaving the 
> method, if there is an (IO) exception thrown from setLength.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (ZOOKEEPER-2572) Potential resource leak in FileTxnLog.truncate

2017-09-01 Thread gaoshu (JIRA)

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

gaoshu edited comment on ZOOKEEPER-2572 at 9/1/17 11:54 AM:


In addition, I think the {{itr.logFile.delete()}} can be replaced by 
{{Files.delete(itr.logFile.toPath())}}. If failed, Files.delete can throw an 
exception, which this is useful for error reporting and to diagnosed why a file 
cannot be deleted. Then the function will return void if successful, or throw 
an exception.  Then we can log the detailed error and rethrow it. But the 
Files.delete is available for jdk1.7 +


was (Author: gaoshu):
In addition, I think the {{itr.logFile.delete()}} can be replaced by 
{{Files.delete(itr.logFile.toPath())}}. If failed, Files.delete can throw an 
exception, which this is useful for error reporting and to diagnosed why a file 
cannot be deleted. Then the function will return void if successful, or throw 
an exception.  Then we can log the detailed error and rethrow it.

> Potential resource leak in FileTxnLog.truncate
> --
>
> Key: ZOOKEEPER-2572
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2572
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.9, 3.5.2
>Reporter: Michael Han
> Fix For: 3.5.4, 3.6.0, 3.4.11
>
>
> In FileTxnLog.truncate, we have:
> {code}
> public boolean truncate(long zxid) throws IOException {
> FileTxnIterator itr = null;
> try {
> itr = new FileTxnIterator(this.logDir, zxid);
> PositionInputStream input = itr.inputStream;
> if(input == null) {
> throw new IOException("No log files found to truncate! This 
> could " +
> "happen if you still have snapshots from an old setup 
> or " +
> "log files were deleted accidentally or dataLogDir 
> was changed in zoo.cfg.");
> }
> long pos = input.getPosition();
> // now, truncate at the current position
> RandomAccessFile raf=new RandomAccessFile(itr.logFile,"rw");
> raf.setLength(pos);
> raf.close();
> while(itr.goToNextLog()) {
> if (!itr.logFile.delete()) {
> LOG.warn("Unable to truncate {}", itr.logFile);
> }
> }
> } finally {
> close(itr);
> }
> return true;
> }
> {code}
> {{raf}} here can be potentially in a state of not closed after leaving the 
> method, if there is an (IO) exception thrown from setLength.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (ZOOKEEPER-2572) Potential resource leak in FileTxnLog.truncate

2017-09-01 Thread gaoshu (JIRA)

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

gaoshu edited comment on ZOOKEEPER-2572 at 9/1/17 11:52 AM:


In addition, I think the {{itr.logFile.delete()}} can be replaced by 
{{Files.delete(itr.logFile.toPath())}}. If failed, Files.delete can throw an 
exception, which this is useful for error reporting and to diagnosed why a file 
cannot be deleted. Then the function will return void if successful, or throw 
an exception.  Then we can log the detailed error and rethrow it.


was (Author: gaoshu):
In addition, I think the {{itr.logFile.delete() }} can be replaced by 
{{Files.delete(itr.logFile.toPath());}}. If failed, Files.delete can throw an 
exception, which this is useful for error reporting and to diagnosed why a file 
cannot be deleted. Then the function will return void if successful, or throw 
an exception.  Then we can log the detailed error and rethrow it.

> Potential resource leak in FileTxnLog.truncate
> --
>
> Key: ZOOKEEPER-2572
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2572
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.9, 3.5.2
>Reporter: Michael Han
> Fix For: 3.5.4, 3.6.0, 3.4.11
>
>
> In FileTxnLog.truncate, we have:
> {code}
> public boolean truncate(long zxid) throws IOException {
> FileTxnIterator itr = null;
> try {
> itr = new FileTxnIterator(this.logDir, zxid);
> PositionInputStream input = itr.inputStream;
> if(input == null) {
> throw new IOException("No log files found to truncate! This 
> could " +
> "happen if you still have snapshots from an old setup 
> or " +
> "log files were deleted accidentally or dataLogDir 
> was changed in zoo.cfg.");
> }
> long pos = input.getPosition();
> // now, truncate at the current position
> RandomAccessFile raf=new RandomAccessFile(itr.logFile,"rw");
> raf.setLength(pos);
> raf.close();
> while(itr.goToNextLog()) {
> if (!itr.logFile.delete()) {
> LOG.warn("Unable to truncate {}", itr.logFile);
> }
> }
> } finally {
> close(itr);
> }
> return true;
> }
> {code}
> {{raf}} here can be potentially in a state of not closed after leaving the 
> method, if there is an (IO) exception thrown from setLength.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Issue Comment Deleted] (ZOOKEEPER-2572) Potential resource leak in FileTxnLog.truncate

2017-09-01 Thread gaoshu (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

gaoshu updated ZOOKEEPER-2572:
--
Comment: was deleted

(was: IMO, the exception happened in FileTxnLog.truncate can be got caught in 
that function.   log exception, release resource and return false. Then the 
dead code will be work. )

> Potential resource leak in FileTxnLog.truncate
> --
>
> Key: ZOOKEEPER-2572
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2572
> Project: ZooKeeper
>  Issue Type: Bug
>  Components: server
>Affects Versions: 3.4.9, 3.5.2
>Reporter: Michael Han
> Fix For: 3.5.4, 3.6.0, 3.4.11
>
>
> In FileTxnLog.truncate, we have:
> {code}
> public boolean truncate(long zxid) throws IOException {
> FileTxnIterator itr = null;
> try {
> itr = new FileTxnIterator(this.logDir, zxid);
> PositionInputStream input = itr.inputStream;
> if(input == null) {
> throw new IOException("No log files found to truncate! This 
> could " +
> "happen if you still have snapshots from an old setup 
> or " +
> "log files were deleted accidentally or dataLogDir 
> was changed in zoo.cfg.");
> }
> long pos = input.getPosition();
> // now, truncate at the current position
> RandomAccessFile raf=new RandomAccessFile(itr.logFile,"rw");
> raf.setLength(pos);
> raf.close();
> while(itr.goToNextLog()) {
> if (!itr.logFile.delete()) {
> LOG.warn("Unable to truncate {}", itr.logFile);
> }
> }
> } finally {
> close(itr);
> }
> return true;
> }
> {code}
> {{raf}} here can be potentially in a state of not closed after leaving the 
> method, if there is an (IO) exception thrown from setLength.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


ZooKeeper_branch35_openjdk7 - Build # 655 - Failure

2017-09-01 Thread Apache Jenkins Server
See https://builds.apache.org/job/ZooKeeper_branch35_openjdk7/655/

###
## LAST 60 LINES OF THE CONSOLE 
###
[...truncated 34.76 MB...]
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[junit] at java.lang.Thread.run(Thread.java:745)
[junit] Thread New I/O worker #460
[junit] at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
[junit] at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
[junit] at 
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
[junit] at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
[junit] at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
[junit] at 
org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:68)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:434)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
[junit] at 
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
[junit] at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[junit] at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
[junit] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[junit] at java.lang.Thread.run(Thread.java:745)
[junit] Thread New I/O worker #131
[junit] at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
ERROR: H16 is offline; cannot locate jdk-1.7.0_79 (unlimited security)
[junit] at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
[junit] at 
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
[junit] at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
[junit] at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
[junit] at 
org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:68)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:434)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
[junit] at 
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
[junit] at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[junit] at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
[junit] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[junit] at java.lang.Thread.run(Thread.java:745)
[junit] Thread New I/O worker #278
[junit] at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
[junit] at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
[junit] at 
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
[junit] at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
[junit] at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
[junit] at 
org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:68)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:434)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212)
[junit] at 
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
[junit] at 
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
[junit] at 
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[junit] at 
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
[junit] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[junit] at java.lang.Thread.run(Thread.java:745)
[junit] Thread New I/O worker #127
[junit] at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
[junit] at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
[junit] at 
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
[junit]