From aa84a39ea7745ee466b1d5c471b19edf8fcf6f79 Mon Sep 17 00:00:00 2001 From: Iraklis Psaroudakis Date: Tue, 8 Jul 2025 13:28:40 +0300 Subject: [PATCH] Fix NPE in IndexShard flushStats Note we cannot use withEngineOrNull because the method can block and cannot be called from cluster state update threads. Fixes #124164 --- .../main/java/org/elasticsearch/index/shard/IndexShard.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java index 76ecd8141f79d..8dc7440c5dccf 100644 --- a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java @@ -1366,11 +1366,12 @@ public RefreshStats refreshStats() { } public FlushStats flushStats() { + final Engine engine = getEngineOrNull(); return new FlushStats( flushMetric.count(), periodicFlushMetric.count(), TimeUnit.NANOSECONDS.toMillis(flushMetric.sum()), - getEngineOrNull() != null ? getEngineOrNull().getTotalFlushTimeExcludingWaitingOnLockInMillis() : 0L + engine != null ? engine.getTotalFlushTimeExcludingWaitingOnLockInMillis() : 0L ); }