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/08/01 00:15:38 UTC
[1/2] lucene-solr:branch_7x: SOLR-12412: Leak transaction log on
tragic event
Repository: lucene-solr
Updated Branches:
refs/heads/branch_7x a0afe4646 -> a9f129190
SOLR-12412: Leak transaction log on tragic event
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/41028dc9
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/41028dc9
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/41028dc9
Branch: refs/heads/branch_7x
Commit: 41028dc989bc53717878123c0ea3effbbd7351ae
Parents: a0afe46
Author: Cao Manh Dat <da...@apache.org>
Authored: Wed Aug 1 07:13:41 2018 +0700
Committer: Cao Manh Dat <da...@apache.org>
Committed: Wed Aug 1 07:15:14 2018 +0700
----------------------------------------------------------------------
solr/core/src/java/org/apache/solr/update/UpdateLog.java | 6 ++++++
.../org/apache/solr/cloud/LeaderTragicEventTest.java | 11 +++++------
2 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/41028dc9/solr/core/src/java/org/apache/solr/update/UpdateLog.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/UpdateLog.java b/solr/core/src/java/org/apache/solr/update/UpdateLog.java
index 46d8435..1abf23c 100644
--- a/solr/core/src/java/org/apache/solr/update/UpdateLog.java
+++ b/solr/core/src/java/org/apache/solr/update/UpdateLog.java
@@ -188,6 +188,7 @@ public class UpdateLog implements PluginInfoInitialized, SolrMetricProducer {
protected TransactionLog bufferTlog;
protected TransactionLog tlog;
protected TransactionLog prevTlog;
+ protected TransactionLog prevTlogOnPrecommit;
protected final Deque<TransactionLog> logs = new LinkedList<>(); // list of recent logs, newest first
protected LinkedList<TransactionLog> newestLogsOnStartup = new LinkedList<>();
protected int numOldRecords; // number of records in the recent logs
@@ -810,6 +811,11 @@ public class UpdateLog implements PluginInfoInitialized, SolrMetricProducer {
// since document additions can happen concurrently with commit, create
// a new transaction log first so that we know the old one is definitely
// in the index.
+ if (prevTlog != null) {
+ // postCommit for prevTlog is not called, may be the index is corrupted
+ // if we override prevTlog value, the correspond tlog will be leaked, close it first
+ postCommit(cmd);
+ }
prevTlog = tlog;
tlog = null;
id++;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/41028dc9/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
index e432493..83bd3c3 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
@@ -38,6 +38,7 @@ import org.apache.solr.common.cloud.ClusterStateUtil;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
+import org.apache.solr.common.util.ObjectReleaseTracker;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.DirectoryFactory;
import org.apache.solr.core.MockDirectoryFactory;
@@ -181,15 +182,13 @@ public class LeaderTragicEventTest extends SolrCloudTestCase {
Replica oldLeader = corruptLeader(collection, new ArrayList<>());
- //TODO better way to test this
- Thread.sleep(5000);
- Replica leader = getCollectionState(collection).getSlice("shard1").getLeader();
- assertEquals(leader.getName(), oldLeader.getName());
-
if (otherReplicaJetty != null) {
- // won't be able to do anything here, since this replica can't recovery from the leader
otherReplicaJetty.start();
}
+ //TODO better way to test this
+ Thread.sleep(2000);
+ Replica leader = getCollectionState(collection).getSlice("shard1").getLeader();
+ assertEquals(leader.getName(), oldLeader.getName());
} finally {
CollectionAdminRequest.deleteCollection(collection).process(cluster.getSolrClient());
}
[2/2] lucene-solr:branch_7x: SOLR-12412: Fix precommit
Posted by da...@apache.org.
SOLR-12412: Fix precommit
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/a9f12919
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/a9f12919
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/a9f12919
Branch: refs/heads/branch_7x
Commit: a9f129190f9065c8775a628df181fb53248db488
Parents: 41028dc
Author: Cao Manh Dat <da...@apache.org>
Authored: Wed Aug 1 07:14:41 2018 +0700
Committer: Cao Manh Dat <da...@apache.org>
Committed: Wed Aug 1 07:15:22 2018 +0700
----------------------------------------------------------------------
solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a9f12919/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
index 83bd3c3..604ec45 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
@@ -38,7 +38,6 @@ import org.apache.solr.common.cloud.ClusterStateUtil;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
-import org.apache.solr.common.util.ObjectReleaseTracker;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.DirectoryFactory;
import org.apache.solr.core.MockDirectoryFactory;