Side-step pending deletes check (#30571)
When we split/shrink an index we open several IndexWriter instances causeing file-deletes to be pending on windows. This subsequently fails when we open an IW to bootstrap the index history due to pending deletes. This change sidesteps the check since we know our history goes forward in terms of files and segments. Closes #30416
This commit is contained in:
parent
098b3b7fb4
commit
b50cf3c6b0
|
@ -107,11 +107,8 @@ setup:
|
|||
---
|
||||
"Split from 1 to N":
|
||||
- skip:
|
||||
# when re-enabling uncomment the below skips
|
||||
version: "all"
|
||||
reason: "AwaitsFix'ing, see https://github.com/elastic/elasticsearch/issues/30503"
|
||||
# version: " - 6.3.99"
|
||||
# reason: expects warnings that pre-6.4.0 will not send
|
||||
version: " - 6.99.99"
|
||||
reason: Automatic preparation for splitting was added in 7.0.0
|
||||
features: "warnings"
|
||||
- do:
|
||||
indices.create:
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
---
|
||||
"Split index ignores target template mapping":
|
||||
- skip:
|
||||
# when re-enabling uncomment the below skips
|
||||
version: "all"
|
||||
reason: "AwaitsFix'ing, see https://github.com/elastic/elasticsearch/issues/30503"
|
||||
# version: " - 6.3.99"
|
||||
# reason: expects warnings that pre-6.4.0 will not send
|
||||
version: " - 6.3.99"
|
||||
reason: expects warnings that pre-6.4.0 will not send
|
||||
features: "warnings"
|
||||
|
||||
# create index
|
||||
|
|
|
@ -731,13 +731,13 @@ public class Store extends AbstractIndexShardComponent implements Closeable, Ref
|
|||
|
||||
private final Logger deletesLogger;
|
||||
|
||||
StoreDirectory(Directory delegateDirectory, Logger deletesLogger) throws IOException {
|
||||
StoreDirectory(Directory delegateDirectory, Logger deletesLogger) {
|
||||
super(delegateDirectory);
|
||||
this.deletesLogger = deletesLogger;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
public void close() {
|
||||
assert false : "Nobody should close this directory except of the Store itself";
|
||||
}
|
||||
|
||||
|
@ -759,6 +759,17 @@ public class Store extends AbstractIndexShardComponent implements Closeable, Ref
|
|||
public String toString() {
|
||||
return "store(" + in.toString() + ")";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkPendingDeletions() throws IOException {
|
||||
if (super.checkPendingDeletions()) {
|
||||
deletesLogger.warn("directory has still pending deletes");
|
||||
}
|
||||
// we skip this check since our IW usage always goes forward.
|
||||
// we still might run into situations where we have pending deletes ie. in shrink / split case
|
||||
// and that will cause issues on windows since we open multiple IW instance one after another during the split/shrink recovery
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -23,7 +23,6 @@ import org.apache.lucene.search.Sort;
|
|||
import org.apache.lucene.search.SortField;
|
||||
import org.apache.lucene.search.SortedSetSelector;
|
||||
import org.apache.lucene.search.SortedSetSortField;
|
||||
import org.apache.lucene.util.LuceneTestCase.AwaitsFix;
|
||||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.action.admin.cluster.reroute.ClusterRerouteResponse;
|
||||
import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest;
|
||||
|
@ -77,7 +76,6 @@ import static org.hamcrest.Matchers.containsString;
|
|||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
||||
|
||||
@AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/30416")
|
||||
public class ShrinkIndexIT extends ESIntegTestCase {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -24,7 +24,6 @@ import org.apache.lucene.search.SortField;
|
|||
import org.apache.lucene.search.SortedSetSelector;
|
||||
import org.apache.lucene.search.SortedSetSortField;
|
||||
import org.apache.lucene.search.join.ScoreMode;
|
||||
import org.apache.lucene.util.LuceneTestCase;
|
||||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest;
|
||||
import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse;
|
||||
|
@ -81,7 +80,6 @@ import static org.hamcrest.Matchers.equalTo;
|
|||
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
||||
|
||||
|
||||
@LuceneTestCase.AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/30416")
|
||||
public class SplitIndexIT extends ESIntegTestCase {
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue