diff --git a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/querykit/BaseLeafFrameProcessor.java b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/querykit/BaseLeafFrameProcessor.java index 6dfbbbab40c0..a0c82001c46f 100644 --- a/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/querykit/BaseLeafFrameProcessor.java +++ b/extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/querykit/BaseLeafFrameProcessor.java @@ -29,6 +29,7 @@ import org.apache.druid.frame.read.FrameReader; import org.apache.druid.frame.write.FrameWriterFactory; import org.apache.druid.java.util.common.Unit; +import org.apache.druid.java.util.common.logger.Logger; import org.apache.druid.msq.exec.DataServerQueryHandler; import org.apache.druid.msq.input.ReadableInput; import org.apache.druid.msq.input.table.SegmentWithDescriptor; @@ -44,6 +45,7 @@ public abstract class BaseLeafFrameProcessor implements FrameProcessor { + private static final Logger log = new Logger(BaseLeafFrameProcessor.class); private final ReadableInput baseInput; private final ResourceHolder outputChannelHolder; private final ResourceHolder frameWriterFactoryHolder; @@ -85,7 +87,14 @@ public ReturnOrAwait runIncrementally(final IntSet readableInputs) throw final ReturnOrAwait retVal; if (baseInput.hasSegment()) { - retVal = runWithSegment(baseInput.getSegment()); + try { + retVal = runWithSegment(baseInput.getSegment()); + } + catch (Exception e) { + // Did not want to load the segment for exception handling, hence adding the descriptor in the log to figure out failures. + log.error("Error processing segment descriptor: [%s]", baseInput.getSegment().getDescriptor()); + throw e; + } } else if (baseInput.hasDataServerQuery()) { retVal = runWithDataServerQuery(baseInput.getDataServerQuery()); } else {