This is an automated email from the ASF dual-hosted git repository.

abhishek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new 4255711b3e6 fix: handle BOOKMARK events in kubernetes pod discovery 
(#15819)
4255711b3e6 is described below

commit 4255711b3e67a11d350240a7016c6ac6147544cb
Author: Lasse Mammen <[email protected]>
AuthorDate: Fri Feb 9 13:20:04 2024 +0000

    fix: handle BOOKMARK events in kubernetes pod discovery (#15819)
---
 .../java/org/apache/druid/k8s/discovery/DefaultK8sApiClient.java   | 7 ++++++-
 .../src/main/java/org/apache/druid/k8s/discovery/WatchResult.java  | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/extensions-core/kubernetes-extensions/src/main/java/org/apache/druid/k8s/discovery/DefaultK8sApiClient.java
 
b/extensions-core/kubernetes-extensions/src/main/java/org/apache/druid/k8s/discovery/DefaultK8sApiClient.java
index ab2c3b20952..00ad6b76abb 100644
--- 
a/extensions-core/kubernetes-extensions/src/main/java/org/apache/druid/k8s/discovery/DefaultK8sApiClient.java
+++ 
b/extensions-core/kubernetes-extensions/src/main/java/org/apache/druid/k8s/discovery/DefaultK8sApiClient.java
@@ -131,7 +131,7 @@ public class DefaultK8sApiClient implements K8sApiClient
           try {
             while (watch.hasNext()) {
               Watch.Response<V1Pod> item = watch.next();
-              if (item != null && item.type != null) {
+              if (item != null && item.type != null && 
!item.type.equals(WatchResult.BOOKMARK)) {
                 DiscoveryDruidNodeAndResourceVersion result = null;
                 if (item.object != null) {
                   result = new DiscoveryDruidNodeAndResourceVersion(
@@ -150,6 +150,11 @@ public class DefaultK8sApiClient implements K8sApiClient
                     result
                 );
                 return true;
+              } else if (item != null && item.type != null && 
item.type.equals(WatchResult.BOOKMARK)) {
+                // Events with type BOOKMARK will only contain resourceVersion 
and no metadata. See
+                // Kubernetes API documentation for details.
+                LOGGER.debug("BOOKMARK event fired, no nothing, only update 
resourceVersion");
+                return true;
               } else {
                 LOGGER.error("WTH! item or item.type is NULL");
               }
diff --git 
a/extensions-core/kubernetes-extensions/src/main/java/org/apache/druid/k8s/discovery/WatchResult.java
 
b/extensions-core/kubernetes-extensions/src/main/java/org/apache/druid/k8s/discovery/WatchResult.java
index 5f9e4178eb1..f47b1375732 100644
--- 
a/extensions-core/kubernetes-extensions/src/main/java/org/apache/druid/k8s/discovery/WatchResult.java
+++ 
b/extensions-core/kubernetes-extensions/src/main/java/org/apache/druid/k8s/discovery/WatchResult.java
@@ -27,6 +27,7 @@ public interface WatchResult
 {
   String ADDED = "ADDED";
   String DELETED = "DELETED";
+  String BOOKMARK = "BOOKMARK";
 
   boolean hasNext() throws SocketTimeoutException;
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to