This is an automated email from the ASF dual-hosted git repository.
lakshsingla 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 204533cade6 Remove Query ID verification check from MSQ workers
(#16886)
204533cade6 is described below
commit 204533cade64bad591b31918ce1ad2b7de03b2c2
Author: Laksh Singla <[email protected]>
AuthorDate: Wed Aug 14 10:22:19 2024 +0530
Remove Query ID verification check from MSQ workers (#16886)
Upgrade/Downgrade between any version till or before Druid 30 where the
newer version runs a worker task, while the older version runs a controller
task can fail. The patch removes that verification check till its safe to add
it back.
---
.../main/java/org/apache/druid/msq/exec/WorkerImpl.java | 17 ++++-------------
.../main/java/org/apache/druid/msq/kernel/StageId.java | 3 +++
2 files changed, 7 insertions(+), 13 deletions(-)
diff --git
a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/exec/WorkerImpl.java
b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/exec/WorkerImpl.java
index 7d2964eb2f8..912826c5c5a 100644
---
a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/exec/WorkerImpl.java
+++
b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/exec/WorkerImpl.java
@@ -1100,7 +1100,7 @@ public class WorkerImpl implements Worker
*/
public void addKernel(final WorkerStageKernel kernel)
{
- final StageId stageId =
verifyQueryId(kernel.getWorkOrder().getStageDefinition().getId());
+ final StageId stageId =
kernel.getWorkOrder().getStageDefinition().getId();
if (holderMap.putIfAbsent(stageId.getStageNumber(), new
KernelHolder(kernel)) != null) {
// Already added. Do nothing.
@@ -1116,7 +1116,7 @@ public class WorkerImpl implements Worker
*/
public void finishProcessing(final StageId stageId)
{
- final KernelHolder kernel =
holderMap.get(verifyQueryId(stageId).getStageNumber());
+ final KernelHolder kernel = holderMap.get(stageId.getStageNumber());
if (kernel != null) {
try {
@@ -1137,7 +1137,7 @@ public class WorkerImpl implements Worker
*/
public void removeKernel(final StageId stageId)
{
- final KernelHolder removed =
holderMap.remove(verifyQueryId(stageId).getStageNumber());
+ final KernelHolder removed = holderMap.remove(stageId.getStageNumber());
if (removed == null) {
throw new ISE("No kernel for stage[%s]", stageId);
@@ -1191,7 +1191,7 @@ public class WorkerImpl implements Worker
@Nullable
public WorkerStageKernel getKernelFor(final StageId stageId)
{
- final KernelHolder holder =
holderMap.get(verifyQueryId(stageId).getStageNumber());
+ final KernelHolder holder = holderMap.get(stageId.getStageNumber());
if (holder != null) {
return holder.kernel;
} else {
@@ -1240,15 +1240,6 @@ public class WorkerImpl implements Worker
{
this.done = true;
}
-
- private StageId verifyQueryId(final StageId stageId)
- {
- if (!stageId.getQueryId().equals(workerContext.queryId())) {
- throw new ISE("Unexpected queryId[%s], expected queryId[%s]",
stageId.getQueryId(), workerContext.queryId());
- }
-
- return stageId;
- }
}
/**
diff --git
a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/kernel/StageId.java
b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/kernel/StageId.java
index 5b98eed0da9..a928e5834fc 100644
---
a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/kernel/StageId.java
+++
b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/kernel/StageId.java
@@ -31,6 +31,9 @@ import java.util.Objects;
/**
* Globally unique stage identifier: query ID plus stage number.
+ *
+ * Note: Versions till Druid 30 had a bug in the QueryKits which populated the
{@link #queryId} field with random
+ * UUIDs. Therefore, all usage of the field must be vetted instead of assuming
that it will be the expected query id
*/
public class StageId implements Comparable<StageId>
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]