You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2020/02/24 14:59:49 UTC
[incubator-iotdb] branch FileClosedDebug updated: add close reason
log
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch FileClosedDebug
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/FileClosedDebug by this push:
new ffc64df add close reason log
ffc64df is described below
commit ffc64df3a220a9291fe83c8f833390efa05ca629
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Mon Feb 24 22:59:34 2020 +0800
add close reason log
---
.../iotdb/db/query/control/FileReaderManager.java | 6 ++--
.../iotdb/tsfile/read/TsFileSequenceReader.java | 33 ++++++++++++----------
.../tsfile/read/reader/DefaultTsFileInput.java | 2 +-
3 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java b/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
index 5d37fc8..87a90a3 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
@@ -93,12 +93,12 @@ public class FileReaderManager implements IService {
closedReferenceMap.remove(seqFile);
TsFileSequenceReader reader = closedFileReaderMap.remove(seqFile);
if (reader != null) {
- reader.close();
+ reader.close("Merge");
}
unclosedReferenceMap.remove(seqFile);
reader = unclosedFileReaderMap.remove(seqFile);
if (reader != null) {
- reader.close();
+ reader.close("Merge");
}
}
@@ -124,7 +124,7 @@ public class FileReaderManager implements IService {
if (refAtom != null && refAtom.get() == 0) {
try {
- reader.close();
+ reader.close("no reference");
} catch (IOException e) {
logger.error("Can not close TsFileSequenceReader {} !", reader.getFileName(), e);
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index b8cd41d..3c1f0b4 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -18,16 +18,6 @@
*/
package org.apache.iotdb.tsfile.read;
-import static org.apache.iotdb.tsfile.write.writer.TsFileIOWriter.magicStringBytes;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
import org.apache.iotdb.tsfile.compress.IUnCompressor;
@@ -37,11 +27,7 @@ import org.apache.iotdb.tsfile.file.MetaMarker;
import org.apache.iotdb.tsfile.file.footer.ChunkGroupFooter;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
import org.apache.iotdb.tsfile.file.header.PageHeader;
-import org.apache.iotdb.tsfile.file.metadata.ChunkGroupMetaData;
-import org.apache.iotdb.tsfile.file.metadata.ChunkMetaData;
-import org.apache.iotdb.tsfile.file.metadata.TsDeviceMetadata;
-import org.apache.iotdb.tsfile.file.metadata.TsDeviceMetadataIndex;
-import org.apache.iotdb.tsfile.file.metadata.TsFileMetaData;
+import org.apache.iotdb.tsfile.file.metadata.*;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics;
@@ -54,6 +40,17 @@ import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import static org.apache.iotdb.tsfile.write.writer.TsFileIOWriter.magicStringBytes;
+
public class TsFileSequenceReader implements AutoCloseable {
private static final Logger logger = LoggerFactory.getLogger(TsFileSequenceReader.class);
@@ -474,6 +471,12 @@ public class TsFileSequenceReader implements AutoCloseable {
deviceMetadataMap = null;
}
+ public void close(String reason) throws IOException {
+ resourceLogger.debug("{} reader is closed by {}", file, reason);
+ this.tsFileInput.close();
+ deviceMetadataMap = null;
+ }
+
public String getFileName() {
return this.file;
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/DefaultTsFileInput.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/DefaultTsFileInput.java
index ca04d2f..57a678e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/DefaultTsFileInput.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/DefaultTsFileInput.java
@@ -70,7 +70,7 @@ public class DefaultTsFileInput implements TsFileInput {
try {
return channel.read(dst, position);
} catch (ClosedChannelException e) {
- LOGGER.error(String.format("File is closed while reading %s", path));
+ LOGGER.error("File is closed while reading {}", path);
throw e;
}
}