You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ds...@apache.org on 2026/09/27 02:45:29 UTC
(solr) 01/05: SOLR-18135: Preserve merge exception; stop merge timer only once (#4939)
This is an automated email from the ASF dual-hosted git repository.
dsmiley pushed a commit to branch branch_10x
in repository https://gitbox.apache.org/repos/asf/solr.git
commit e7ab25535ff3321ca32a4f42871bf7e7f153f9bf
Author: Nick <ni...@gmail.com>
AuthorDate: Thu Sep 24 09:24:23 2026 -0400
SOLR-18135: Preserve merge exception; stop merge timer only once (#4939)
(cherry picked from commit 8e02c856a1bb0ce84999cbeb6fc0ccc19095b4a3)
---
changelog/unreleased/SOLR-18135.yml | 7 +++++++
solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java | 5 +----
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/changelog/unreleased/SOLR-18135.yml b/changelog/unreleased/SOLR-18135.yml
new file mode 100644
index 00000000000..d83db110aaf
--- /dev/null
+++ b/changelog/unreleased/SOLR-18135.yml
@@ -0,0 +1,7 @@
+title: Fix double-stop of the merge timer when segment merging fails with assertions enabled.
+type: fixed
+authors:
+ - name: Nick Shanin
+links:
+ - name: SOLR-18135
+ url: https://issues.apache.org/jira/browse/SOLR-18135
diff --git a/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java b/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
index 200c85728c0..a1d6ba72891 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
@@ -229,16 +229,13 @@ public class SolrIndexWriter extends IndexWriter {
updateMergeMetrics(totalNumDocs, deletedDocs, segmentsCount, false, false, null);
try {
super.merge(merge);
- updateMergeMetrics(totalNumDocs, deletedDocs, segmentsCount, true, false, timer);
} catch (Throwable t) {
- if (timer != null) {
- timer.stop();
- }
updateMergeMetrics(totalNumDocs, deletedDocs, segmentsCount, true, true, timer);
throw t;
} finally {
runningMerges.remove(segString);
}
+ updateMergeMetrics(totalNumDocs, deletedDocs, segmentsCount, true, false, timer);
}
public Map<String, Object> getRunningMerges() {