This is an automated email from the ASF dual-hosted git repository.
JackieTien97 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new b8dad5d787a fix: catch Exception during TVList ownership transfer
(#17540)
b8dad5d787a is described below
commit b8dad5d787a78c8ff342c5b4db37c8b07f16c8f3
Author: shizy <[email protected]>
AuthorDate: Thu Apr 23 14:30:33 2026 +0800
fix: catch Exception during TVList ownership transfer (#17540)
---
.../execution/fragment/FragmentInstanceContext.java | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
index 4cfd8dc63ec..346d06bf910 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java
@@ -34,6 +34,7 @@ import org.apache.iotdb.db.queryengine.common.DeviceContext;
import org.apache.iotdb.db.queryengine.common.FragmentInstanceId;
import org.apache.iotdb.db.queryengine.common.QueryId;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
+import org.apache.iotdb.db.queryengine.exception.MemoryNotEnoughException;
import org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet;
import org.apache.iotdb.db.queryengine.metric.QueryRelatedResourceMetricSet;
import org.apache.iotdb.db.queryengine.metric.QueryResourceMetricSet;
@@ -959,9 +960,22 @@ public class FragmentInstanceContext extends QueryContext {
memoryReservationManager.releaseMemoryVirtually(tvList.getReservedMemoryBytes());
FragmentInstanceContext queryContext =
(FragmentInstanceContext) queryContextSet.iterator().next();
- queryContext
- .getMemoryReservationContext()
- .reserveMemoryVirtually(releasedBytes.left,
releasedBytes.right);
+ try {
+ queryContext
+ .getMemoryReservationContext()
+ .reserveMemoryVirtually(releasedBytes.left,
releasedBytes.right);
+ } catch (MemoryNotEnoughException ex) {
+ LOGGER.warn(
+ "MemoryNotEnoughException when transferring TVList ownership
from query {} to another query {}.",
+ this.getId(),
+ queryContext.getId());
+ } catch (RuntimeException ex) {
+ LOGGER.warn(
+ "Unexpected Exception when transferring TVList ownership
from query {} to another query {}.",
+ this.getId(),
+ queryContext.getId(),
+ ex);
+ }
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(