You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "Jialin Qiao (Jira)" <ji...@apache.org> on 2022/01/17 11:40:00 UTC

[jira] [Assigned] (IOTDB-2413) iotdb:The file handle is not released

     [ https://issues.apache.org/jira/browse/IOTDB-2413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jialin Qiao reassigned IOTDB-2413:
----------------------------------

    Assignee: Yuan Tian

> iotdb:The file handle is not released
> -------------------------------------
>
>                 Key: IOTDB-2413
>                 URL: https://issues.apache.org/jira/browse/IOTDB-2413
>             Project: Apache IoTDB
>          Issue Type: Bug
>          Components: Core/Server
>    Affects Versions: 0.13.0-SNAPSHOT
>            Reporter: 刘珍
>            Assignee: Yuan Tian
>            Priority: Major
>         Attachments: config.properties, iotdb-engine.properties, iotdb-env.sh, log_error.log, lsof_1.out
>
>
> master 0114  302e9b9153ec1d2c39187151a425ffac9275f6b6
> 问题现象:
> 长测运行(读写混合,配置文件见附件) 45小时
> iotdb Too many open files
> lsof -p iotdb_pid大量tsfile文件句柄没释放。
>  cat 1.out |grep "0.tsfile"|wc -l
> 65213
> 2022-01-16 15:34:56,838 [pool-170-IoTDB-Query-1] ERROR o.a.i.d.q.d.RawQueryDataSetWithoutValueFilter:571 - exception happened in producer thread 
> java.lang.NullPointerException: null
> 	at org.apache.iotdb.tsfile.read.TsFileSequenceReader.<init>(TsFileSequenceReader.java:137)
> 	at org.apache.iotdb.tsfile.read.TsFileSequenceReader.<init>(TsFileSequenceReader.java:117)
> 	at org.apache.iotdb.db.query.control.FileReaderManager.get(FileReaderManager.java:121)
> 	at org.apache.iotdb.db.engine.cache.BloomFilterCache.lambda$new$1(BloomFilterCache.java:73)
> 	at com.github.benmanes.caffeine.cache.LocalLoadingCache.lambda$newMappingFunction$2(LocalLoadingCache.java:141)
> 	at com.github.benmanes.caffeine.cache.LocalCache.lambda$statsAware$0(LocalCache.java:139)
> 	at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2405)
> 	at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
> 	at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2403)
> 	at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2386)
> 	at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108)
> 	at com.github.benmanes.caffeine.cache.LocalLoadingCache.get(LocalLoadingCache.java:54)
> 	at org.apache.iotdb.db.engine.cache.BloomFilterCache.get(BloomFilterCache.java:99)
> 	at org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache.get(TimeSeriesMetadataCache.java:177)
> 	at org.apache.iotdb.db.utils.FileLoaderUtils.loadTimeSeriesMetadata(FileLoaderUtils.java:107)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.loadTimeSeriesMetadata(SeriesReader.java:1103)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.unpackSeqTsFileResource(SeriesReader.java:1069)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.tryToUnpackAllOverlappedFilesToTimeSeriesMetadata(SeriesReader.java:993)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.hasNextFile(SeriesReader.java:263)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.hasNextChunk(SeriesReader.java:336)
> 	at org.apache.iotdb.db.query.reader.series.SeriesRawDataBatchReader.readChunkData(SeriesRawDataBatchReader.java:170)
> 	at org.apache.iotdb.db.query.reader.series.SeriesRawDataBatchReader.hasNextBatch(SeriesRawDataBatchReader.java:118)
> 	at org.apache.iotdb.db.query.dataset.RawQueryDataSetWithoutValueFilter$ReadTask.runMayThrow(RawQueryDataSetWithoutValueFilter.java:96)
> 	at org.apache.iotdb.db.concurrent.WrappedRunnable.run(WrappedRunnable.java:32)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)
> 2022-01-16 15:34:56,841 [pool-170-IoTDB-Query-8] ERROR o.a.i.t.f.f.LocalFSInputFactory:40 - Failed to get TsFile input of file: /data/iotdb_data/data/sequence/root.test.g_41/0/0/1642317771628-4999-0-0.tsfile,  
> java.nio.file.FileSystemException: /data/iotdb_data/data/sequence/root.test.g_41/0/0/1642317771628-4999-0-0.tsfile: Too many open files
> 	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
> 	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
> 	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
> 	at sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:177)
> 	at java.nio.channels.FileChannel.open(FileChannel.java:287)
> 	at java.nio.channels.FileChannel.open(FileChannel.java:335)
> 	at org.apache.iotdb.tsfile.read.reader.LocalTsFileInput.<init>(LocalTsFileInput.java:42)
> 	at org.apache.iotdb.tsfile.fileSystem.fileInputFactory.LocalFSInputFactory.getTsFileInput(LocalFSInputFactory.java:38)
> 	at org.apache.iotdb.tsfile.read.TsFileSequenceReader.<init>(TsFileSequenceReader.java:131)
> 	at org.apache.iotdb.tsfile.read.TsFileSequenceReader.<init>(TsFileSequenceReader.java:117)
> 	at org.apache.iotdb.db.query.control.FileReaderManager.get(FileReaderManager.java:121)
> 	at org.apache.iotdb.db.engine.cache.BloomFilterCache.lambda$new$1(BloomFilterCache.java:73)
> 	at com.github.benmanes.caffeine.cache.LocalLoadingCache.lambda$newMappingFunction$2(LocalLoadingCache.java:141)
> 	at com.github.benmanes.caffeine.cache.LocalCache.lambda$statsAware$0(LocalCache.java:139)
> 	at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2405)
> 	at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1892)
> 	at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2403)
> 	at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2386)
> 	at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108)
> 	at com.github.benmanes.caffeine.cache.LocalLoadingCache.get(LocalLoadingCache.java:54)
> 	at org.apache.iotdb.db.engine.cache.BloomFilterCache.get(BloomFilterCache.java:99)
> 	at org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache.get(TimeSeriesMetadataCache.java:177)
> 	at org.apache.iotdb.db.utils.FileLoaderUtils.loadTimeSeriesMetadata(FileLoaderUtils.java:107)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.loadTimeSeriesMetadata(SeriesReader.java:1103)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.unpackSeqTsFileResource(SeriesReader.java:1069)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.tryToUnpackAllOverlappedFilesToTimeSeriesMetadata(SeriesReader.java:993)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.hasNextFile(SeriesReader.java:263)
> 	at org.apache.iotdb.db.query.reader.series.SeriesReader.hasNextChunk(SeriesReader.java:336)
> 	at org.apache.iotdb.db.query.reader.series.SeriesRawDataBatchReader.readChunkData(SeriesRawDataBatchReader.java:170)
> 	at org.apache.iotdb.db.query.reader.series.SeriesRawDataBatchReader.hasNextBatch(SeriesRawDataBatchReader.java:118)
> 	at org.apache.iotdb.tsfile.read.query.timegenerator.node.LeafNode.hasNext(LeafNode.java:51)
> 	at org.apache.iotdb.tsfile.read.query.timegenerator.TimeGenerator.hasNext(TimeGenerator.java:53)
> 	at org.apache.iotdb.db.query.executor.AggregationExecutor.aggregateWithValueFilter(AggregationExecutor.java:713)
> 	at org.apache.iotdb.db.query.executor.AggregationExecutor.executeWithValueFilter(AggregationExecutor.java:661)
> 	at org.apache.iotdb.db.query.executor.QueryRouter.aggregate(QueryRouter.java:152)
> 	at org.apache.iotdb.db.qp.executor.PlanExecutor.processDataQuery(PlanExecutor.java:617)
> 	at org.apache.iotdb.db.qp.executor.PlanExecutor.processQuery(PlanExecutor.java:254)
> 	at org.apache.iotdb.db.service.basic.ServiceProvider.createQueryDataSet(ServiceProvider.java:252)
> 	at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeQueryPlan(TSServiceImpl.java:751)
> 	at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.access$000(TSServiceImpl.java:160)
> 	at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl$QueryTask.call(TSServiceImpl.java:218)
> 	at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl$QueryTask.call(TSServiceImpl.java:162)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)



--
This message was sent by Atlassian Jira
(v8.20.1#820001)