You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/05/18 03:36:28 UTC
lucene-solr:master: SOLR-12028: Remove BadApple for TestCloudRecovery
Repository: lucene-solr
Updated Branches:
refs/heads/master 9cbaf327e -> 4a9a8397e
SOLR-12028: Remove BadApple for TestCloudRecovery
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/4a9a8397
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/4a9a8397
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/4a9a8397
Branch: refs/heads/master
Commit: 4a9a8397e458a5805c55fe494ba4b6de18233f90
Parents: 9cbaf32
Author: Cao Manh Dat <da...@apache.org>
Authored: Fri May 18 10:36:14 2018 +0700
Committer: Cao Manh Dat <da...@apache.org>
Committed: Fri May 18 10:36:14 2018 +0700
----------------------------------------------------------------------
.../apache/solr/cloud/TestCloudRecovery.java | 26 +++++++++++---------
1 file changed, 14 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4a9a8397/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
index bdbb176..8cb959e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
@@ -77,7 +77,7 @@ public class TestCloudRecovery extends SolrCloudTestCase {
}
@Test
- @BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028") // 09-Apr-2018
+ // Removed BadApple on 18-May-2018
public void leaderRecoverFromLogOnStartupTest() throws Exception {
AtomicInteger countReplayLog = new AtomicInteger(0);
DirectUpdateHandler2.commitOnClose = false;
@@ -153,32 +153,34 @@ public class TestCloudRecovery extends SolrCloudTestCase {
assertEquals(0, resp.getResults().getNumFound());
int logHeaderSize = Integer.MAX_VALUE;
- Map<File, byte[]> contentFiles = new HashMap<>();
+ Map<String, byte[]> contentFiles = new HashMap<>();
for (JettySolrRunner solrRunner : cluster.getJettySolrRunners()) {
for (SolrCore solrCore : solrRunner.getCoreContainer().getCores()) {
File tlogFolder = new File(solrCore.getUlogDir(), UpdateLog.TLOG_NAME);
String[] tLogFiles = tlogFolder.list();
Arrays.sort(tLogFiles);
- File lastTLogFile = new File(tlogFolder.getAbsolutePath() + "/" + tLogFiles[tLogFiles.length - 1]);
- byte[] tlogBytes = IOUtils.toByteArray(new FileInputStream(lastTLogFile));
- contentFiles.put(lastTLogFile, tlogBytes);
- logHeaderSize = Math.min(tlogBytes.length, logHeaderSize);
+ String lastTLogFile = tlogFolder.getAbsolutePath() + "/" + tLogFiles[tLogFiles.length - 1];
+ try (FileInputStream inputStream = new FileInputStream(lastTLogFile)){
+ byte[] tlogBytes = IOUtils.toByteArray(inputStream);
+ contentFiles.put(lastTLogFile, tlogBytes);
+ logHeaderSize = Math.min(tlogBytes.length, logHeaderSize);
+ }
}
}
ChaosMonkey.stop(cluster.getJettySolrRunners());
assertTrue("Timeout waiting for all not live", ClusterStateUtil.waitForAllReplicasNotLive(cloudClient.getZkStateReader(), 45000));
- for (Map.Entry<File, byte[]> entry : contentFiles.entrySet()) {
+ for (Map.Entry<String, byte[]> entry : contentFiles.entrySet()) {
byte[] tlogBytes = entry.getValue();
if (tlogBytes.length <= logHeaderSize) continue;
- FileOutputStream stream = new FileOutputStream(entry.getKey());
- int skipLastBytes = Math.max(random().nextInt(tlogBytes.length - logHeaderSize), 2);
- for (int i = 0; i < entry.getValue().length - skipLastBytes; i++) {
- stream.write(tlogBytes[i]);
+ try (FileOutputStream stream = new FileOutputStream(entry.getKey())) {
+ int skipLastBytes = Math.max(random().nextInt(tlogBytes.length - logHeaderSize), 2);
+ for (int i = 0; i < entry.getValue().length - skipLastBytes; i++) {
+ stream.write(tlogBytes[i]);
+ }
}
- stream.close();
}
ChaosMonkey.start(cluster.getJettySolrRunners());