Slackbot
09/20/2022, 11:10 PMCory Johannsen
09/20/2022, 11:10 PM{
"level": "ERROR",
"thread": "HttpServerInventoryView-4",
"message": "failed to get sync response from [<http://10.4.132.249:8091/_1663714827177>]. Return code [0], Reason: [null]",
"exception": {
"exception_class": "org.jboss.netty.channel.ChannelException",
"exception_message": "Faulty channel in resource pool",
"stacktrace": "org.jboss.netty.channel.ChannelException: Faulty channel in resource pool\n\tat org.apache.druid.java.util.http.client.NettyHttpClient.go(NettyHttpClient.java:131)\n\tat org.apache.druid.server.coordination.ChangeRequestHttpSyncer.sync(ChangeRequestHttpSyncer.java:218)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\nCaused by: org.jboss.netty.channel.ConnectTimeoutException: connection timed out: /10.4.132.249:8091\n\tat org.jboss.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:139)\n\tat org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:83)\n\tat org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)\n\tat org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)\n\tat org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)\n\tat org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)\n\t... 3 more\n"
},
"hostName": "storage--druid-coordinator-8454fd4cf5-zz94r"
}Cory Johannsen
09/20/2022, 11:10 PMorg.jboss.netty.channel.ChannelException: Faulty channel in resource pool
at org.apache.druid.java.util.http.client.NettyHttpClient.go(NettyHttpClient.java:131)
at org.apache.druid.server.coordination.ChangeRequestHttpSyncer.sync(ChangeRequestHttpSyncer.java:218)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.jboss.netty.channel.ConnectTimeoutException: connection timed out: /10.4.132.249:8091
at org.jboss.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:139)
at org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:83)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
at org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
... 3 more\nCory Johannsen
09/20/2022, 11:11 PMCory Johannsen
09/20/2022, 11:14 PMCory Johannsen
09/20/2022, 11:16 PMCory Johannsen
09/20/2022, 11:17 PMCory Johannsen
09/20/2022, 11:20 PMSergio Ferragut
09/21/2022, 12:26 AMGian Merlino
09/21/2022, 12:52 AMGian Merlino
09/21/2022, 12:52 AMGian Merlino
09/21/2022, 12:53 AMGian Merlino
09/21/2022, 12:53 AMDidip Kerabat
09/21/2022, 2:07 AMDidip Kerabat
09/21/2022, 2:11 AMhttp for server inventory. We switched them back to batch and never got those errors.Cory Johannsen
09/21/2022, 2:42 PMI'm wondering if, at the time this was logged, did 10.4.132.249 exist?No, that IP no longer existed.
Cory Johannsen
09/21/2022, 2:43 PM• Is the Indexer in a statefulset? i.e getting the same hostname when it returns with a different IP?We run everything as deployments, so each pod gets a new IP.
Cory Johannsen
09/21/2022, 2:44 PMthere have been other conversations where the host resolution caching in the JVM is the culprit, but I'm not sure if this is at play here.This was one of my first ideas, that the JVM was using a stale IP. I expected that there would be a limit on the number of retries before the coordinator flags the node as out of service and removes it from memory.
Gian Merlino
09/21/2022, 2:49 PMGian Merlino
09/21/2022, 2:50 PMGian Merlino
09/21/2022, 2:50 PMGian Merlino
09/21/2022, 2:50 PMGian Merlino
09/21/2022, 2:50 PMGian Merlino
09/21/2022, 2:52 PMCory Johannsen
09/21/2022, 2:58 PMDidip Kerabat
09/21/2022, 3:00 PMK8sDruidNodeDiscoveryProvider still use druid.host for looking up the IP or hostname?Gian Merlino
09/21/2022, 3:02 PMGian Merlino
09/21/2022, 3:04 PMCory Johannsen
09/21/2022, 3:19 PM"thread":"org.apache.druid.k8s.discovery.K8sDruidNodeDiscoveryProvider$NodeRoleWatcherpeon","message":"Node[<http://10.4.131.88:8091>] of role[peon] went offline."
So that confirms that the indexer un-announced, and that the coordinator received the message.Cory Johannsen
09/21/2022, 3:27 PMjava.lang.NullPointerException
at org.apache.druid.client.HttpServerInventoryView$2.toDruidServer(HttpServerInventoryView.java:179)
at org.apache.druid.client.HttpServerInventoryView$2.lambda$nodesRemoved$1(HttpServerInventoryView.java:161)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1085)
at org.apache.druid.client.HttpServerInventoryView$2.nodesRemoved(HttpServerInventoryView.java:161)Cory Johannsen
09/21/2022, 3:28 PMCory Johannsen
09/21/2022, 3:28 PMnode.getServices()
or
((DataNodeService) node.getServices().get(DataNodeService.DISCOVERY_SERVICE_KEY))
is returning null.Cory Johannsen
09/21/2022, 3:44 PMHttpServerInventoryView when this occurs.Cory Johannsen
09/21/2022, 8:40 PMCory Johannsen
09/21/2022, 8:40 PMCory Johannsen
09/21/2022, 8:52 PMCory Johannsen
09/21/2022, 8:52 PMCory Johannsen
09/21/2022, 8:57 PM((DataNodeService) node.getServices().get(DataNodeService.DISCOVERY_SERVICE_KEY)) at https://github.com/apache/druid/blob/0.23.0/server/src/main/java/org/apache/druid/client/HttpServerInventoryView.java#L175-L182Cory Johannsen
09/21/2022, 11:16 PMDruidNode got created without any services, that is likely the source of thisCory Johannsen
09/21/2022, 11:29 PMCory Johannsen
09/21/2022, 11:29 PMCory Johannsen
09/21/2022, 11:33 PMCory Johannsen
09/21/2022, 11:40 PMCory Johannsen
09/21/2022, 11:45 PMChangeRequestHttpSyncer is still running for a segment after the pod hosting that segment has gone away. I wonder if this is related to segment announcements, not service announcements.Gian Merlino
09/22/2022, 2:49 PMGian Merlino
09/22/2022, 2:50 PMGian Merlino
09/22/2022, 2:52 PMGian Merlino
09/22/2022, 2:53 PMtilak chowdary
09/22/2022, 3:48 PMtilak chowdary
09/22/2022, 3:50 PMCory Johannsen
09/22/2022, 4:07 PMCory Johannsen
09/30/2022, 9:10 PM{
"level": "WARN",
"@timestamp": "2022-09-30T19:39:49.121Z",
"thread": "Thread-49",
"message": "Retrying (2 of 2) in 2,504ms.",
"exception": {
"exception_class": "<http://org.apache.druid.java.util.common.RE|org.apache.druid.java.util.common.RE>",
"exception_message": "Failed to patch pod[cj/storage--druid-coordinator-5bfc57477-vqlqs], code[422], error[{\n \"kind\": \"Status\",\n \"apiVersion\": \"v1\",\n \"metadata\": {\n \n },\n \"status\": \"Failure\",\n \"message\": \"the server rejected our request due to an error in our request\",\n \"reason\": \"Invalid\",\n \"details\": {\n \n },\n \"code\": 422\n}].",
"stacktrace": "<http://org.apache.druid.java.util.common.RE|org.apache.druid.java.util.common.RE>: Failed to patch pod[cj/storage--druid-coordinator-5bfc57477-vqlqs], code[422], error[{\n \"kind\": \"Status\",\n \"apiVersion\": \"v1\",\n \"metadata\": {\n \n },\n \"status\": \"Failure\",\n \"message\": \"the server rejected our request due to an error in our request\",\n \"reason\": \"Invalid\",\n \"details\": {\n \n },\n \"code\": 422\n}].\n\tat org.apache.druid.k8s.discovery.DefaultK8sApiClient.patchPod(DefaultK8sApiClient.java:71)\n\tat org.apache.druid.k8s.discovery.K8sDruidNodeAnnouncer.lambda$unannounce$2(K8sDruidNodeAnnouncer.java:148)\n\tat org.apache.druid.java.util.common.RetryUtils.retry(RetryUtils.java:129)\n\tat org.apache.druid.java.util.common.RetryUtils.retry(RetryUtils.java:81)\n\tat org.apache.druid.java.util.common.RetryUtils.retry(RetryUtils.java:163)\n\tat org.apache.druid.java.util.common.RetryUtils.retry(RetryUtils.java:153)\n\tat org.apache.druid.k8s.discovery.K8sDruidNodeAnnouncer.unannounce(K8sDruidNodeAnnouncer.java:146)\n\tat org.apache.druid.cli.ServerRunnable$DiscoverySideEffectsProvider$1.stop(ServerRunnable.java:191)\n\tat org.apache.druid.java.util.common.lifecycle.Lifecycle.stop(Lifecycle.java:368)\n\tat org.apache.druid.java.util.common.lifecycle.Lifecycle$1.run(Lifecycle.java:401)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\nCaused by: io.kubernetes.client.openapi.ApiException: Unprocessable Entity\n\tat io.kubernetes.client.openapi.ApiClient.handleResponse(ApiClient.java:993)\n\tat io.kubernetes.client.openapi.ApiClient.execute(ApiClient.java:905)\n\tat io.kubernetes.client.openapi.apis.CoreV1Api.patchNamespacedPodWithHttpInfo(CoreV1Api.java:41306)\n\tat io.kubernetes.client.openapi.apis.CoreV1Api.patchNamespacedPod(CoreV1Api.java:41261)\n\tat org.apache.druid.k8s.discovery.DefaultK8sApiClient.patchPod(DefaultK8sApiClient.java:68)\n\t... 10 more\n"
},
"hostName": "storage--druid-coordinator-5bfc57477-vqlqs"
}Cory Johannsen
09/30/2022, 9:10 PM11.0.1, but the latest is 16.0.0Cory Johannsen
09/30/2022, 9:11 PMDidip Kerabat
10/01/2022, 3:03 PMGian Merlino
10/03/2022, 9:15 PMGian Merlino
10/03/2022, 9:15 PMCory Johannsen
10/03/2022, 9:16 PMCory Johannsen
10/03/2022, 9:56 PMCory Johannsen
10/03/2022, 10:26 PMCory Johannsen
10/03/2022, 10:36 PMGian Merlino
10/04/2022, 4:03 AMGian Merlino
10/04/2022, 4:16 AM