在我们的生产Linux机器上,我们正在获取一个FileNotFoundException
,其中包含“#34;设备上没有剩余空间”的附加消息"。
我在网上这里和那里读到,问题可能与inodes
的数量有关,但似乎这不是问题。我们的系统管理员确认我们有足够的inodes
。
它还能做什么?!我现在已经挖了两天了。
如果需要,我可以提供任何其他信息。提前谢谢。
这是精确的堆栈跟踪。
13 Nov 2014 10:09:32 ERROR error:113 - Failed to move file: /wr/data/import/xml/YC00210097_ba7b688c-6b46-11e4-b8e8-07cc96f6b24f_1415891227642.xml.
java.io.FileNotFoundException: /wr/data/import/processeddir/YC00210097_ba7b688c-6b46-11e4-b8e8-07cc96f6b24f_1415891227642_2014_11_13_10_09_32_241.xml (No space left on device)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
at java.io.FileOutputStream.<init>(FileOutputStream.java:145)
at org.apache.commons.io.FileUtils.doCopyFile(FileUtils.java:671)
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:653)
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:607)
at org.apache.commons.io.FileUtils.moveFile(FileUtils.java:1818)
at com.yellowbook.util.YBFileIterator.finished(YBFileIterator.java:105)
at com.yellowbook.diadexchange.exchangejob.ImportJob.execute(ImportJob.java:279)
at com.yellowbook.scheduling.diadexchange.JobExchangeScheduler.executeImportJob(JobExchangeScheduler.java:34)
at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:311)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:113)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
答案 0 :(得分:1)
processeddir
中的文件数是问题所在。所以我们得到了这个(看似令人困惑)FileNotFoundException
,因为目标目录中有太多文件。在将这些文件的大部分归档到压缩(但是单个)文件后,异常消失了。