SOLR-8449: Fix the core restore functionality to allow restoring multiple times on the same core

This commit is contained in:
Varun Thacker 2016-03-05 13:15:19 +05:30
parent f1c044a2d7
commit 4381018b77
3 changed files with 40 additions and 26 deletions

View File

@ -267,6 +267,9 @@ Bug Fixes
* SOLR-8779: Fix missing InterruptedException handling in ZkStateReader.java (Varun Thacker)
* SOLR-8449: Fix the core restore functionality to allow restoring multiple times on the same core
(Johannes Brucher, Varun Thacker)
Optimizations
----------------------
* SOLR-7876: Speed up queries and operations that use many terms when timeAllowed has not been

View File

@ -19,6 +19,9 @@ package org.apache.solr.handler;
import java.lang.invoke.MethodHandles;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
@ -55,7 +58,8 @@ public class RestoreCore implements Callable<Boolean> {
private boolean doRestore() throws Exception {
Path backupPath = Paths.get(backupLocation).resolve(backupName);
String restoreIndexName = "restore." + backupName;
SimpleDateFormat dateFormat = new SimpleDateFormat(SnapShooter.DATE_FMT, Locale.ROOT);
String restoreIndexName = "restore." + dateFormat.format(new Date());
String restoreIndexPath = core.getDataDir() + restoreIndexName;
Directory restoreIndexDir = null;

View File

@ -138,6 +138,11 @@ public class TestRestoreCore extends SolrJettyTestBase {
Thread.sleep(1000);
}
int numRestoreTests = TestUtil.nextInt(random(), 1, 5);
for (int attempts=0; attempts<numRestoreTests; attempts++) {
//Modify existing index before we call restore.
//Delete a few docs
@ -170,6 +175,8 @@ public class TestRestoreCore extends SolrJettyTestBase {
verifyDocs(nDocs);
}
}
@Test
public void testFailedRestore() throws Exception {
int nDocs = TestReplicationHandlerBackup.indexDocs(masterClient);