You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2016/03/08 21:13:33 UTC

lucene-solr git commit: SOLR-8793: Fix stale commit files' size computation in LukeRequestHandler

Repository: lucene-solr
Updated Branches:
  refs/heads/master e490b329b -> 4384627f0


SOLR-8793: Fix stale commit files' size computation in LukeRequestHandler


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/4384627f
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/4384627f
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/4384627f

Branch: refs/heads/master
Commit: 4384627f0891e4dc3232d3c7f20a54bc9224365c
Parents: e490b32
Author: Shai Erera <sh...@apache.org>
Authored: Tue Mar 8 22:11:18 2016 +0200
Committer: Shai Erera <sh...@apache.org>
Committed: Tue Mar 8 22:13:21 2016 +0200

----------------------------------------------------------------------
 solr/CHANGES.txt                                        |  5 +++++
 .../apache/solr/handler/admin/LukeRequestHandler.java   | 12 +++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4384627f/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index ecf8b32..d094b58 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -423,6 +423,11 @@ Bug Fixes
 * SOLR-8712: Variable solr.core.instanceDir was not being resolved (Kristine
   Jetzke, Shawn Heisey, Alan Woodward)
 
+* SOLR-8793: Fix Core admin status API to not fail when computing the size of the segments_N
+  file if the file no longer exists (for example, if a commit happened and the IndexReader
+  hasn't refreshed yet). In this case the reported size of the file is -1.
+  (Shai Erera, Alexey Serba, Richard Coggins)
+
 ======================= 5.5.0 =======================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4384627f/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
index 0ec6d79..450a505 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
@@ -582,7 +582,7 @@ public class LukeRequestHandler extends RequestHandlerBase
     IndexCommit indexCommit = reader.getIndexCommit();
     String segmentsFileName = indexCommit.getSegmentsFileName();
     indexInfo.add("segmentsFile", segmentsFileName);
-    indexInfo.add("segmentsFileSizeInBytes", indexCommit.getDirectory().fileLength(segmentsFileName));
+    indexInfo.add("segmentsFileSizeInBytes", getFileLength(indexCommit.getDirectory(), segmentsFileName));
     Map<String,String> userData = indexCommit.getUserData();
     indexInfo.add("userData", userData);
     String s = userData.get(SolrIndexWriter.COMMIT_TIME_MSEC_KEY);
@@ -592,6 +592,16 @@ public class LukeRequestHandler extends RequestHandlerBase
     return indexInfo;
   }
 
+  private static long getFileLength(Directory dir, String filename) {
+    try {
+      return dir.fileLength(filename);
+    } catch (IOException e) {
+      // Whatever the error is, only log it and return -1.
+      log.warn("Error getting file length for [{}]", filename, e);
+      return -1;
+    }
+  }
+
   /** Returns the sum of RAM bytes used by each segment */
   private static long getIndexHeapUsed(DirectoryReader reader) {
     long indexHeapRamBytesUsed = 0;