web-dev-qa-db-ja.com

システムに十分なスペースがあるにもかかわらず、Hudsonが「デバイスにスペースが残っていません」というエラーで失敗する

Hudsonは、いくつかのプロジェクトをビルドした後、エラーが発生して「デバイスにスペースが残っていません」といういくつかのプロジェクトをビルドした後、ディスクに十分なスペースがあるにもかかわらず繰り返し失敗します。どのフォルダにもクォータの制限はありません。以下は、さまざまなシステムコマンドの出力です。

主なシステム情報は次のとおりです。

Hudson ver. 1.361
executable-war /opt/hudson/hudson.war
Java.runtime.name OpenJDK Runtime Environment
Java.runtime.version 1.6.0_18-b18
os.name Linux-Ubuntu 10.04
os.version 2.6.32-19-generic

Dfによると50%の空き容量があります

$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1            147550696  67382688  72672840  49% /
none                   1535580       304   1535276   1% /dev
none                   1539732       504   1539228   1% /dev/shm
none                   1539732        96   1539636   1% /var/run
none                   1539732         0   1539732   0% /var/lock
none                   1539732         0   1539732   0% /lib/init/rw
none                 147550696  67382688  72672840  49% /var/lib/ureadahead/debugfs

次に、開いているファイルハンドルをlsofで確認しました。これも制限内です

lsof | wc -l
694

次に、このコマンドでファイルハンドルを確認しました

cat /proc/sys/fs/file-nr
3392 0 306935

詳細なエラー

[INFO] No tests to run.
[HUDSON] Recording test results
[INFO] [jar:jar {execution: default-jar}]
[INFO] Building jar: /opt/hudson/jobs/EIF_Branch_R1.2__Projects_PkgOnly/workspace/r1.2/projects/CRMServices/deployment/target/eif.deployment.CRMServices-1.2-bt.jar
[INFO] [antrun:run {execution: default}]
[INFO] Executing tasks
   [unzip] Expanding: /opt/hudson/jobs/EIF_Branch_R1.2__Projects_PkgOnly/workspace/r1.2/projects/CRMServices/deployment/src/it/resources/CRMServices.Driver-soapui-project.Zip into /opt/hudson/jobs/EIF_Branch_R1.2__Projects_PkgOnly/workspace/r1.2/projects/CRMServices/deployment/src/it/resources
[HUDSON] Archiving /opt/hudson/jobs/EIF_Branch_R1.2__Projects_PkgOnly/workspace/r1.2/projects/CRMServices/deployment/pom.xml to /opt/hudson/jobs/EIF_Branch_R1.2__Projects_PkgOnly/modules/rogers.bt.deployment$eif.deployment.CRMServices/builds/2010-07-20_12-13-58/archive/rogers.bt.deployment/eif.deployment.CRMServices/1.2-bt/pom.xml
[HUDSON] Archiving /opt/hudson/jobs/EIF_Branch_R1.2__Projects_PkgOnly/workspace/r1.2/projects/CRMServices/deployment/target/eif.deployment.CRMServices-1.2-bt.jar to /opt/hudson/jobs/EIF_Branch_R1.2__Projects_PkgOnly/modules/rogers.bt.deployment$eif.deployment.CRMServices/builds/2010-07-20_12-13-58/archive/rogers.bt.deployment/eif.deployment.CRMServices/1.2-bt/eif.deployment.CRMServices-1.2-bt.jar
[HUDSON] Re-archiving /opt/hudson/jobs/EIF_Branch_R1.2__Projects_PkgOnly/workspace/r1.2/projects/CRMServices/deployment/target/eif.deployment.CRMServices-1.2-bt.jar
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to serialize hudson.model.Actionable#actions for class hudson.maven.MavenModuleSetBuild
No space left on device
[INFO] ------------------------------------------------------------------------
[INFO] Trace
Java.langchannel stopped
ERROR: Failed to parse POMs
Java.io.IOException: Remote call on Channel to Maven [/opt/bea/jdk160_05/bin/Java, -cp, /opt/hudson/plugins/maven-plugin/WEB-INF/lib/maven-agent-1.363.jar:/opt/hudson/tools/Maven_2.2.1/boot/classworlds-1.1.jar, hudson.maven.agent.Main, /opt/hudson/tools/Maven_2.2.1, /opt/hudson/war/WEB-INF/lib/remoting-1.363.jar, /opt/hudson/plugins/maven-plugin/WEB-INF/lib/maven-interceptor-1.363.jar, 55951, /opt/hudson/plugins/maven-plugin/WEB-INF/lib/maven2.1-interceptor-1.2.jar] failed
                at hudson.remoting.Channel.call(Channel.Java:564)
                at hudson.maven.ProcessCache$MavenProcess.call(ProcessCache.Java:156)
                at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.Java:483)
                at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.Java:416)
                at hudson.model.Run.run(Run.Java:1253)
                at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.Java:306)
                at hudson.model.ResourceController.execute(ResourceController.Java:88)
                at hudson.model.Executor.run(Executor.Java:127)
Caused by: Java.lang.Error: Unable to load resource hudson/maven/Messages.properties
                at hudson.remoting.RemoteClassLoader.findResource(RemoteClassLoader.Java:198)
                at Java.lang.ClassLoader.getResource(ClassLoader.Java:977)
                at Java.lang.Class.getResource(Class.Java:2074)
                at org.jvnet.localizer.ResourceBundleHolder.get(ResourceBundleHolder.Java:83)
                at org.jvnet.localizer.ResourceBundleHolder.get(ResourceBundleHolder.Java:102)
                at org.jvnet.localizer.ResourceBundleHolder.get(ResourceBundleHolder.Java:102)
                at org.jvnet.localizer.ResourceBundleHolder.format(ResourceBundleHolder.Java:139)
                at hudson.maven.Messages.MavenBuilder_AsyncFailed(Messages.Java:233)
                at hudson.maven.MavenBuilder.call(MavenBuilder.Java:184)
                at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.Java:696)
                at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.Java:640)
                at hudson.remoting.UserRequest.perform(UserRequest.Java:114)
                at hudson.remoting.UserRequest.perform(UserRequest.Java:48)
                at hudson.remoting.Request$2.run(Request.Java:270)
                at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:441)
                at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
                at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
                at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:885)
                at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:907)
                at Java.lang.Thread.run(Thread.Java:619)
Caused by: Java.io.IOException: No space left on device
                at Java.io.FileOutputStream.writeBytes(Native Method)
                at Java.io.FileOutputStream.write(FileOutputStream.Java:247)
                at hudson.remoting.RemoteClassLoader.makeResource(RemoteClassLoader.Java:267)
                at hudson.remoting.RemoteClassLoader.findResource(RemoteClassLoader.Java:194)
                ... 19 more
FATAL:  : No space left on device
hudson.util.IOException2:  : No space left on device
                at hudson.XmlFile.write(XmlFile.Java:168)
                at hudson.model.Run.save(Run.Java:1383)
                at hudson.maven.MavenModuleSetBuild$RunnerImpl.post2(MavenModuleSetBuild.Java:595)
                at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.Java:528)
                at hudson.model.Run.run(Run.Java:1276)
                at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.Java:306)
                at hudson.model.ResourceController.execute(ResourceController.Java:88)
                at hudson.model.Executor.run(Executor.Java:127)
Caused by: com.thoughtworks.xstream.io.StreamException:  : No space left on device
                at com.thoughtworks.xstream.core.util.QuickWriter.flush(QuickWriter.Java:73)
                at com.thoughtworks.xstream.io.xml.PrettyPrintWriter.endNode(PrettyPrintWriter.Java:288)
                at com.thoughtworks.xstream.io.WriterWrapper.endNode(WriterWrapper.Java:37)
                at com.thoughtworks.xstream.io.path.PathTrackingWriter.endNode(PathTrackingWriter.Java:48)
                at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.Java:99)
                at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.Java:38)
                at com.thoughtworks.xstream.XStream.marshal(XStream.Java:840)
                at com.thoughtworks.xstream.XStream.marshal(XStream.Java:829)
                at com.thoughtworks.xstream.XStream.toXML(XStream.Java:804)
                at hudson.XmlFile.write(XmlFile.Java:165)
                ... 7 more
Caused by: Java.io.IOException: No space left on device
                at Java.io.FileOutputStream.writeBytes(FileOutputStream.Java)
                at Java.io.FileOutputStream.write(FileOutputStream.Java:260)
                at Java.io.OutputStreamWriter.flush(OutputStreamWriter.Java:212)
                at Java.io.BufferedWriter.flush(BufferedWriter.Java:236)
                at hudson.util.AtomicFileWriter.flush(AtomicFileWriter.Java:91)
                at com.thoughtworks.xstream.io.xml.PrettyPrintWriter.endNode(PrettyPrintWriter.Java:288)
                at com.thoughtworks.xstream.io.path.PathTrackingWriter.endNode(PathTrackingWriter.Java:49)
                at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.Java:38)
                at hudson.XmlFile.write(XmlFile.Java:165)
                at hudson.model.Run.save(Run.Java:1384)
                at hudson.maven.MavenModuleSetBuild$RunnerImpl.post2(MavenModuleSetBuild.Java:595)
                at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.Java:528) 
19
Sohel Khan

「デバイスに空き領域がありません」エラーは、ストレージ容量の不足が原因である必要はありません。示唆されているように、ファイルシステムのiノードが不足している場合にも発生する可能性があります。言い換えると、特定のファイルシステムには非常に多くのファイルしか含めることができません。 dfを実行すると、すべてが問題ないことがわかります。

詳細は この記事 を参照してください。

不要になったファイルをいくつか削除するか、Hudsonを別のファイルシステムに置く必要があります。

明示的に大きいiノードテーブルでファイルシステムを構築するために多くの小さなファイルがあることがわかっている状況では、珍しいことではありません。

28
skaffman

メモリオーバーフローによるものです。

このコマンドを実行して、使用可能なメモリサイズを確認します

df

ディスクの100%または100%に近い値が見つかった場合は、そのディレクトリからデータを削除してください。ただし、注意して、もう一度やり直してください。

ほとんどの場合、/ tmpディレクトリは100%になるため、マシンを再起動します

Sudo reboot

tmpディレクトリからすべてのファイルを消去します。

1
jatin

また、ipcs -uおよびipcs -pを実行して、「スペース不足」がSHMメモリがいっぱいであるかどうか、およびどのアプリがそれを使用しているかを確認します。 割り当てられたセグメントsysctl kernel.shmmniと等しい場合、「完全」なshmを使用しています。システムの制限を示しているため、ipcs -lの出力と比較することもできます。

Javaの最新バージョンでは、shmの使用がなくなるまでshmの使用を乱用する可能性があります。shmを悪用しているプログラムを閉じるか、kernel.shmmniおよびkernel.shmmax sysctlを増やして増加させてください。利用可能なshmスペース

0
higuita