SonarQube 7.5 - the temp/ce folder is not clearing up for REHL 7 server

When running SonarQube we get the following error.

Error Details

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.IllegalStateException: Failed to write to '/usr/ncte/sonarqube-7.5/temp/ce/1383194083182480438/3682543351976561243/hashes-14456'
### Cause: java.lang.IllegalStateException: Failed to write to '/usr/ncte/sonarqube-7.5/temp/ce/1383194083182480438/3682543351976561243/hashes-14456'
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:172)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:158)
	at org.apache.ibatis.binding.MapperMethod.executeWithResultHandler(MapperMethod.java:128)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:73)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
	at com.sun.proxy.$Proxy54.scrollLineHashes(Unknown Source)
	at org.sonar.db.source.FileSourceDao.scrollLineHashes(FileSourceDao.java:93)
	at org.sonar.ce.task.projectanalysis.filemove.FileMoveDetectionStep.computeScoreMatrix(FileMoveDetectionStep.java:270)
	at org.sonar.ce.task.projectanalysis.filemove.FileMoveDetectionStep.execute(FileMoveDetectionStep.java:141)
	at org.sonar.ce.task.step.ComputationStepExecutor.executeStep(ComputationStepExecutor.java:77)
	at org.sonar.ce.task.step.ComputationStepExecutor.executeSteps(ComputationStepExecutor.java:69)
	at org.sonar.ce.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:56)
	at org.sonar.ce.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:81)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.executeTask(CeWorkerImpl.java:137)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.findAndProcessTask(CeWorkerImpl.java:100)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.withCustomizedThreadName(CeWorkerImpl.java:84)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:76)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:46)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	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)
Caused by: java.lang.IllegalStateException: Failed to write to '/usr/ncte/sonarqube-7.5/temp/ce/1383194083182480438/3682543351976561243/hashes-14456'
	at org.sonar.ce.task.projectanalysis.source.SourceLinesHashCache.save(SourceLinesHashCache.java:78)
	at org.sonar.ce.task.projectanalysis.source.SourceLinesHashCache.computeIfAbsent(SourceLinesHashCache.java:50)
	at org.sonar.ce.task.projectanalysis.source.SourceLinesHashRepositoryImpl.getLineHashesMatchingDBVersion(SourceLinesHashRepositoryImpl.java:47)
	at org.sonar.ce.task.projectanalysis.filemove.FileMoveDetectionStep.getReportFileLineHashes(FileMoveDetectionStep.java:236)
	at org.sonar.ce.task.projectanalysis.filemove.FileMoveDetectionStep.lambda$getReportFileSourcesByKey$2(FileMoveDetectionStep.java:228)
	at org.sonar.ce.task.projectanalysis.filemove.FileSimilarity$LazyFileImpl.ensureSupplierCalled(FileSimilarity.java:94)
	at org.sonar.ce.task.projectanalysis.filemove.FileSimilarity$LazyFileImpl.getLineHashes(FileSimilarity.java:88)
	at org.sonar.ce.task.projectanalysis.filemove.FileSimilarityImpl.score(FileSimilarityImpl.java:36)
	at org.sonar.ce.task.projectanalysis.filemove.FileMoveDetectionStep$LineHashesWithKeyDtoResultHandler.handleResult(FileMoveDetectionStep.java:316)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.callResultHandler(DefaultResultSetHandler.java:371)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.storeObject(DefaultResultSetHandler.java:364)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:356)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:330)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:306)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:196)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
	at org.apache.ibatis.executor.ReuseExecutor.doQuery(ReuseExecutor.java:60)
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:170)
	... 25 more
Caused by: java.nio.file.FileSystemException: /usr/ncte/sonarqube-7.5/temp/ce/1383194083182480438/3682543351976561243/hashes-14456: 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.newByteChannel(UnixFileSystemProvider.java:214)
	at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
	at java.nio.file.Files.newOutputStream(Files.java:216)
	at java.nio.file.Files.write(Files.java:3351)
	at org.sonar.ce.task.projectanalysis.source.SourceLinesHashCache.save(SourceLinesHashCache.java:76)
	... 47 more 

FYI, we’ve noticed the the temp/ce directory is filling up fast.

Welcome to the community !

It looks like the linux user that run SonarQube is hitting the number of open file limit.

From the requirement page, you can see the values needed. Please have a look at the actual value you have defined on your OS.

1 Like

Thank you Pierre, I’ve already had those set permanently in the limits.conf file.

For some reason the temp/ce didn’t clear after any scans. I restarted SonarQube and the files in the CE directory was finally deleted. I don’t know if this was a hiccup in the app but will continue to monitor this directory and report back any issues.

The temp/ce directory didn’t fill up again and scans were successful. Restarting SonarQube helps clear up any hung processes.

1 Like