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)
「デバイスに空き領域がありません」エラーは、ストレージ容量の不足が原因である必要はありません。示唆されているように、ファイルシステムのiノードが不足している場合にも発生する可能性があります。言い換えると、特定のファイルシステムには非常に多くのファイルしか含めることができません。 df
を実行すると、すべてが問題ないことがわかります。
詳細は この記事 を参照してください。
不要になったファイルをいくつか削除するか、Hudsonを別のファイルシステムに置く必要があります。
明示的に大きいiノードテーブルでファイルシステムを構築するために多くの小さなファイルがあることがわかっている状況では、珍しいことではありません。
メモリオーバーフローによるものです。
このコマンドを実行して、使用可能なメモリサイズを確認します
df
ディスクの100%または100%に近い値が見つかった場合は、そのディレクトリからデータを削除してください。ただし、注意して、もう一度やり直してください。
ほとんどの場合、/ tmpディレクトリは100%になるため、マシンを再起動します
Sudo reboot
tmpディレクトリからすべてのファイルを消去します。
また、ipcs -u
およびipcs -p
を実行して、「スペース不足」がSHMメモリがいっぱいであるかどうか、およびどのアプリがそれを使用しているかを確認します。 割り当てられたセグメントがsysctl kernel.shmmni
と等しい場合、「完全」なshmを使用しています。システムの制限を示しているため、ipcs -l
の出力と比較することもできます。
Javaの最新バージョンでは、shmの使用がなくなるまでshmの使用を乱用する可能性があります。shmを悪用しているプログラムを閉じるか、kernel.shmmni
およびkernel.shmmax
sysctlを増やして増加させてください。利用可能なshmスペース