fix TestRawZkClient unstableness#1295
Conversation
ZkClient connect to ZooKeeper client first before monitor bean initialization. If the monitor is not fully constructed, the test would pass. Otherwise, as in github, it would not. Fix this issue by properly construct the object.
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkClient.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/TestHelper.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkClient.java
Outdated
Show resolved
Hide resolved
huizhilu
left a comment
There was a problem hiding this comment.
I'll look into this more carefully about the race condition.
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/TestHelper.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkClient.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkClient.java
Show resolved
Hide resolved
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/ZkTestBase.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
Show resolved
Hide resolved
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkClient.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric/ZkClientMonitor.java
Show resolved
Hide resolved
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
Show resolved
Hide resolved
jiajunwang
left a comment
There was a problem hiding this comment.
I took a deeper look at the test logic. Since this might be the most important test in our code base, let's be careful to not lose any coverage.
For more details, we can discuss in next week's meeting.
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkClient.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/ZkClient.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
Show resolved
Hide resolved
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
Show resolved
Hide resolved
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/test/java/org/apache/helix/zookeeper/impl/client/TestRawZkClient.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric/ZkClientMonitor.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric/ZkClientMonitor.java
Outdated
Show resolved
Hide resolved
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric/ZkClientPathMonitor.java
Outdated
Show resolved
Hide resolved
jiajunwang
left a comment
There was a problem hiding this comment.
LGTM! Please address the last comment.
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric/ZkClientPathMonitor.java
Outdated
Show resolved
Hide resolved
|
This diff is approved. Please help to merge
|
zookeeper-api/src/main/java/org/apache/helix/zookeeper/zkclient/metric/ZkClientMonitor.java
Outdated
Show resolved
Hide resolved
|
@kaisun2000 Please run helix-core tests since the change impacts almost all logics. |
|
@kaisun2000 you can rerun the test job in Github UI. There is no need to touch code for a re-run. |
|
I've triggered rerun the workflow. |
|
@jiajunwang, @pkuwm, as we looked, my github page does not have this UI button to re-run. Other than that, any other concerns? Or let us merge this in. |
@kaisun2000 I've helped re-run all the jobs. |
helix-core/src/test/java/org/apache/helix/integration/TestPartitionMovementThrottle.java
Outdated
Show resolved
Hide resolved
|
@jiajunwang, removed the extra space to trigger run from my side. Please help to merge. |

Issues
Fix #1294
Description
ZkClient connect to ZooKeeper client first before monitor bean
initialization. If the monitor is not fully constructed, the
test would pass. Otherwise, as in github, it would not. Fix this
issue by properly construct the object.
Tests
None
In Old connection New session
After session expiry sessionId= 72277739317428225
Shut down zookeeper at port 2127 in thread main
Starting ZK server at localhost:2358
[INFO] Tests run: 44, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 701.476 s - in TestSuite
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 44, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11:47 min
[INFO] Finished at: 2020-08-19T18:11:02-07:00
[INFO] ------------------------------------------------------------------------
ksun-mn1:zookeeper-api ksun$ git status
Documentation (Optional)
(Link the GitHub wiki you added)
Commits
Code Quality
(helix-style-intellij.xml if IntelliJ IDE is used)