You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@zookeeper.apache.org by GitBox <gi...@apache.org> on 2020/02/04 09:32:22 UTC

[GitHub] [zookeeper] yfxhust opened a new pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

yfxhust opened a new pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247
 
 
   …alized ZKDatabase to client during the snapshot loading
   
   Author: Fangxi Yin <yi...@kuaishou.com>

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is not set. But it is different when `readonlymode.enabled` is set. This PR addresses the scenario which  `readonlymode.enabled` is set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing in another thread if `readonlymode.enabled` is set. During the ReadOnlyZooKeeperServer in another thread is serving,  QuorumPeer is looking for leader until successful. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients. This uninitialized state would confuse Curator's NodeCache.
   When `readonlymode.enabled` is not set, QuorumPeer is just looking for leader until successful and no other actions are taking place.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behaviors is as same as what you have described when  `readonlymode.enabled` is set. But it is different when `readonlymode.enabled` is not set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on issue #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on issue #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#issuecomment-591261504
 
 
   @lvfangmin Any further comments ?

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is not set. But it is different when `readonlymode.enabled` is set. This PR addresses the scenario which  `readonlymode.enabled` is set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer if `readonlymode.enabled` is set. QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer serves, it possibly expose the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and look for leader.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, FollowerZooKeeperServer is shutdown and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a temporary ReadOnlyZooKeeperServer if `readonlymode.enabled` is set. That's the point that this PR want to resolve.
   If `readonlymode.enabled` is not set, I think it wont't move forward and look for leader.
   So I missed anything ? Thank you!

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behaviors is as same as what you have described when  `readonlymode.enabled` is set. But it is different when `readonlymode.enabled` is not set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But quorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is not set. It is different when `readonlymode.enabled` is set. This PR addresses the scenario which  `readonlymode.enabled` is set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing in another thread if `readonlymode.enabled` is set. During the ReadOnlyZooKeeperServer in another thread is serving,  QuorumPeer is looking for leader until successful. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients. This uninitialized state would confuse Curator's NodeCache.
   When `readonlymode.enabled` is not set, QuorumPeer is only just looking for leader until successful and no other actions are taking place.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer if `readonlymode.enabled` is set. QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly expose the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is not set. It is different when `readonlymode.enabled` is set. This PR addresses the scenario which  `readonlymode.enabled` is set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the QuorumPeer is still alive after then and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing in another thread if `readonlymode.enabled` is set. During the ReadOnlyZooKeeperServer in another thread is serving,  QuorumPeer is looking for leader until successful. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients. This uninitialized state would confuse Curator's NodeCache.
   When `readonlymode.enabled` is not set and network is broken, QuorumPeer is only just looking for leader until successful and no other actions are taking place.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly expose the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is set. But it is different when `readonlymode.enabled` is not set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer if `readonlymode.enabled` is set. QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly expose the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a temporary ReadOnlyZooKeeperServer if `readonlymode.enabled` is set. That's the point that this PR want to resolve.
   If `readonlymode.enabled` is not set, I think it wont't move forward and look for leader.
   So I missed anything ? Thank you!

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is not set. But it is different when `readonlymode.enabled` is set. This PR addresses the scenario which  `readonlymode.enabled` is set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing in another thread if `readonlymode.enabled` is set. During the ReadOnlyZooKeeperServer in another thread is serving,  QuorumPeer is looking for leader until successful. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients. This uninitialized state would confuse Curator's NodeCache.
   When `readonlymode.enabled` is not set, QuorumPeer is only just looking for leader until successful and no other actions are taking place.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] lvfangmin commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
lvfangmin commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r378566391
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   If there is issue before finishing syncing with leader, the proper behavior probably is exit instead of blocking here. Otherwise, it won't move forward even after the network issue recovered, let me know if I missed anything.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is not set. But it is different when `readonlymode.enabled` is set. This PR addresses the scenario which  `readonlymode.enabled` is set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing in another thread if `readonlymode.enabled` is set. During the ReadOnlyZooKeeperServer in another thread is serving,  QuorumPeer is looking for leader until successful. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients. This uninitialized state would confuse Curator's NodeCache.
   When `readonlymode.enabled` is not set, QuorumPeer is just looking for leader until successful and no other actions are taking place.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is not set. But it is different when `readonlymode.enabled` is set. This PR addresses the scenario which  `readonlymode.enabled` is set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward. I will always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is not set. It is different when `readonlymode.enabled` is set. This PR addresses the scenario which  `readonlymode.enabled` is set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the QuorumPeer is still alive after then and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing in another thread if `readonlymode.enabled` is set. During the ReadOnlyZooKeeperServer in another thread is serving,  QuorumPeer is looking for leader until successful. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients. This uninitialized state would confuse Curator's NodeCache.
   When `readonlymode.enabled` is not set, QuorumPeer is only just looking for leader until successful and no other actions are taking place.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing if `readonlymode.enabled` is set. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients.
   If `readonlymode.enabled` is not set, I think it wont't move forward and always look for leader until successful.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments.
   Let's take Follower as example.
   In my understanding, QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you described. But the corresponding QuorumPeer is still alive and it will fall into ServerState.LOOKING. In the LOOKING state, it will start a temporary ReadOnlyZooKeeperServer if `readonlymode.enabled` is set. That's the point that this PR want to resolve.
   If `readonlymode.enabled` is not set, I think it wont't move forward and look for leader.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [zookeeper] yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…

Posted by GitBox <gi...@apache.org>.
yfxhust commented on a change in pull request #1247: ZOOKEEPER-3713: ReadOnlyZooKeeperServer should not expose the uniniti…
URL: https://github.com/apache/zookeeper/pull/1247#discussion_r379328043
 
 

 ##########
 File path: zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumPeer.java
 ##########
 @@ -1350,6 +1350,15 @@ public void run() {
                     ServerMetrics.getMetrics().LOOKING_COUNT.add(1);
 
                     if (Boolean.getBoolean("readonlymode.enabled")) {
+                        if (!zkDb.isInitialized()) {
 
 Review comment:
   Thank you for comments. But in my understanding, the behavior is as same as what you have described when  `readonlymode.enabled` is not set. It is different when `readonlymode.enabled` is set. This PR addresses the scenario which  `readonlymode.enabled` is set.
   Let's take Follower as example.
   QuorumPeer would shutdown FollowerZooKeeperServer and clear QuorumPeer's `follower` as null when there is issue during syncing with leader. This is as same as what you have described - " the proper behavior probably is exit instead of blocking here". But QuorumPeer's lifecycle is different with the corresponding's FollowerZooKeeperServer's, so the QuorumPeer is still alive after then and it will fall into ServerState.LOOKING. In the ServerState.LOOKING state, it will start a new temporary ReadOnlyZooKeeperServer without syncing in another thread if `readonlymode.enabled` is set. During the ReadOnlyZooKeeperServer in another thread is serving,  QuorumPeer is looking for leader until successful. That's the point that this PR want to resolve. During the ReadOnlyZooKeeperServer is serving, it possibly exposes the uninitialized zkDb to clients. This uninitialized state would confuse Curator's NodeCache.
   When `readonlymode.enabled` is not set and syncing is broken, QuorumPeer is only just looking for leader until successful and no other actions are taking place.
   If I missed anything. please let me know. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services