Revert #18839 as it causes file leaks
``` > Throwable #1: java.lang.RuntimeException: file handle leaks: [SeekableByteChannel(/var/lib/jenkins/workspace/elastic+elasticsearch+master+g1gc/core/build/testrun/integTest/J0/temp/org.elasticsearch.search.suggest.CompletionSuggestSearch2xIT_518545A20D129C8C-001/tempDir-001/data/nodes/1/indices/4sTECv6WSJOJsw9L4CGamg/0/index/segments_1), SeekableByteChannel(/var/lib/jenkins/workspace/elastic+elasticsearch+master+g1gc/core/build/testrun/integTest/J0/temp/org.elasticsearch.search.suggest.CompletionSuggestSearch2xIT_518545A20D129C8C-001/tempDir-001/data/nodes/1/indices/4sTECv6WSJOJsw9L4CGamg/0/index/segments_1)] > at __randomizedtesting.SeedInfo.seed([518545A20D129C8C]:0) > at org.apache.lucene.mockfile.LeakFS.onClose(LeakFS.java:63) > at org.apache.lucene.mockfile.FilterFileSystem.close(FilterFileSystem.java:77) > at org.apache.lucene.mockfile.FilterFileSystem.close(FilterFileSystem.java:78) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.Exception > at org.apache.lucene.mockfile.LeakFS.onOpen(LeakFS.java:46) > at org.apache.lucene.mockfile.HandleTrackingFS.callOpenHook(HandleTrackingFS.java:81) > at org.apache.lucene.mockfile.HandleTrackingFS.newByteChannel(HandleTrackingFS.java:271) > at org.apache.lucene.mockfile.FilterFileSystemProvider.newByteChannel(FilterFileSystemProvider.java:212) > at org.apache.lucene.mockfile.HandleTrackingFS.newByteChannel(HandleTrackingFS.java:240) > at java.nio.file.Files.newByteChannel(Files.java:361) > at java.nio.file.Files.newByteChannel(Files.java:407) > at org.apache.lucene.store.SimpleFSDirectory.openInput(SimpleFSDirectory.java:77) > at org.apache.lucene.store.FilterDirectory.openInput(FilterDirectory.java:94) > at org.apache.lucene.util.LuceneTestCase.slowFileExists(LuceneTestCase.java:2695) > at org.apache.lucene.store.MockDirectoryWrapper.openInput(MockDirectoryWrapper.java:737) > at org.apache.lucene.store.FilterDirectory.openInput(FilterDirectory.java:94) > at org.elasticsearch.common.lucene.Lucene$1.doBody(Lucene.java:237) > at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:685) > at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:637) > at org.elasticsearch.common.lucene.Lucene.checkSegmentInfoIntegrity(Lucene.java:242) > at org.elasticsearch.index.store.Store$MetadataSnapshot.loadMetadata(Store.java:847) > at org.elasticsearch.index.store.Store$MetadataSnapshot.<init>(Store.java:740) > at org.elasticsearch.index.store.Store.getMetadata(Store.java:260) > at org.elasticsearch.index.store.Store.getMetadata(Store.java:240) > at org.elasticsearch.index.shard.IndexShard.doCheckIndex(IndexShard.java:1310) > at org.elasticsearch.common.util.CancellableThreads.executeIO(CancellableThreads.java:102) > at org.elasticsearch.index.shard.IndexShard.checkIndex(IndexShard.java:1288) > at org.elasticsearch.index.shard.IndexShard.internalPerformTranslogRecovery(IndexShard.java:921) > at org.elasticsearch.index.shard.IndexShard.skipTranslogRecovery(IndexShard.java:964) > at org.elasticsearch.indices.recovery.RecoveryTarget.prepareForTranslogOperations(RecoveryTarget.java:297) > at ```
This commit is contained in:
parent
b15bada2c8
commit
4401517b85
|
@ -53,7 +53,6 @@ import org.elasticsearch.common.unit.ByteSizeValue;
|
||||||
import org.elasticsearch.common.unit.TimeValue;
|
import org.elasticsearch.common.unit.TimeValue;
|
||||||
import org.elasticsearch.common.util.BigArrays;
|
import org.elasticsearch.common.util.BigArrays;
|
||||||
import org.elasticsearch.common.util.Callback;
|
import org.elasticsearch.common.util.Callback;
|
||||||
import org.elasticsearch.common.util.CancellableThreads;
|
|
||||||
import org.elasticsearch.common.util.concurrent.AbstractRunnable;
|
import org.elasticsearch.common.util.concurrent.AbstractRunnable;
|
||||||
import org.elasticsearch.common.util.concurrent.SuspendableRefContainer;
|
import org.elasticsearch.common.util.concurrent.SuspendableRefContainer;
|
||||||
import org.elasticsearch.index.Index;
|
import org.elasticsearch.index.Index;
|
||||||
|
@ -159,7 +158,6 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl
|
||||||
private final TranslogConfig translogConfig;
|
private final TranslogConfig translogConfig;
|
||||||
private final IndexEventListener indexEventListener;
|
private final IndexEventListener indexEventListener;
|
||||||
private final QueryCachingPolicy cachingPolicy;
|
private final QueryCachingPolicy cachingPolicy;
|
||||||
private final CancellableThreads cancellableThreads;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -267,7 +265,6 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl
|
||||||
primaryTerm = indexSettings.getIndexMetaData().primaryTerm(shardId.id());
|
primaryTerm = indexSettings.getIndexMetaData().primaryTerm(shardId.id());
|
||||||
refreshListeners = buildRefreshListeners();
|
refreshListeners = buildRefreshListeners();
|
||||||
persistMetadata(shardRouting, null);
|
persistMetadata(shardRouting, null);
|
||||||
cancellableThreads = new CancellableThreads();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Store store() {
|
public Store store() {
|
||||||
|
@ -846,7 +843,6 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl
|
||||||
} finally { // playing safe here and close the engine even if the above succeeds - close can be called multiple times
|
} finally { // playing safe here and close the engine even if the above succeeds - close can be called multiple times
|
||||||
IOUtils.close(engine);
|
IOUtils.close(engine);
|
||||||
}
|
}
|
||||||
cancellableThreads.cancel(reason);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1285,11 +1281,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl
|
||||||
private void checkIndex() throws IOException {
|
private void checkIndex() throws IOException {
|
||||||
if (store.tryIncRef()) {
|
if (store.tryIncRef()) {
|
||||||
try {
|
try {
|
||||||
cancellableThreads.executeIO(this::doCheckIndex);
|
doCheckIndex();
|
||||||
} catch (ClosedByInterruptException ex) {
|
|
||||||
assert cancellableThreads.isCancelled();
|
|
||||||
// that's fine we might run into this when we cancel the thread since Java NIO will close the channel on interrupt
|
|
||||||
// and on the next access we fail it.
|
|
||||||
} finally {
|
} finally {
|
||||||
store.decRef();
|
store.decRef();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue