From a5c5f65da51323fa25e6fac85e240515c4f34150 Mon Sep 17 00:00:00 2001 From: kimchy <kimchy@gmail.com> Date: Thu, 19 Aug 2010 22:46:58 +0300 Subject: [PATCH] fix recovery status when all index got reused --- .../action/admin/indices/status/GatewayRecoveryStatus.java | 3 +++ .../action/admin/indices/status/PeerRecoveryStatus.java | 3 +++ .../index/gateway/blobstore/BlobStoreIndexShardGateway.java | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/status/GatewayRecoveryStatus.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/status/GatewayRecoveryStatus.java index a0d78c2562d..0627d4d823e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/status/GatewayRecoveryStatus.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/status/GatewayRecoveryStatus.java @@ -171,6 +171,9 @@ public class GatewayRecoveryStatus { public int indexRecoveryProgress() { if (recoveredIndexSize == 0) { + if (indexSize == reusedIndexSize) { + return 100; + } return 0; } return (int) (((double) recoveredIndexSize) / expectedRecoveredIndexSize().bytes() * 100); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/status/PeerRecoveryStatus.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/status/PeerRecoveryStatus.java index 17d1f1f8910..ffadec507eb 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/status/PeerRecoveryStatus.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/status/PeerRecoveryStatus.java @@ -160,6 +160,9 @@ public class PeerRecoveryStatus { public int indexRecoveryProgress() { if (recoveredIndexSize == 0) { + if (indexSize == reusedIndexSize) { + return 100; + } return 0; } return (int) (((double) recoveredIndexSize) / expectedRecoveredIndexSize().bytes() * 100); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/gateway/blobstore/BlobStoreIndexShardGateway.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/gateway/blobstore/BlobStoreIndexShardGateway.java index c0a6e608684..2a2355e63de 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/gateway/blobstore/BlobStoreIndexShardGateway.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/gateway/blobstore/BlobStoreIndexShardGateway.java @@ -540,6 +540,7 @@ public abstract class BlobStoreIndexShardGateway extends AbstractIndexShardCompo if (storeMd != null && storeMd.md5().equals(virtualMd.md5())) { numberOfExistingFiles++; existingTotalSize += virtualMd.sizeInBytes(); + totalSize += virtualMd.sizeInBytes(); if (logger.isTraceEnabled()) { logger.trace("not_recovering [{}], exists in local store and has same md5 [{}]", virtualMd.name(), virtualMd.md5()); } @@ -564,7 +565,7 @@ public abstract class BlobStoreIndexShardGateway extends AbstractIndexShardCompo recoveryStatus.index().files(numberOfFiles, totalSize, numberOfExistingFiles, existingTotalSize); if (logger.isTraceEnabled()) { - logger.trace("recovering_files [{}] with total_size [{}], reusing_files [{}] with total_size [{}]", numberOfFiles, new ByteSizeValue(totalSize), numberOfExistingFiles, new ByteSizeValue(existingTotalSize)); + logger.trace("recovering_files [{}] with total_size [{}], reusing_files [{}] with reused_size [{}]", numberOfFiles, new ByteSizeValue(totalSize), numberOfExistingFiles, new ByteSizeValue(existingTotalSize)); } final CountDownLatch latch = new CountDownLatch(filesToRecover.size());