web-dev-qa-db-fra.com

Hudson échoue avec l'erreur "Il ne reste plus d'espace sur le périphérique" alors qu'il y a suffisamment d'espace sur le système

Hudson échoue à plusieurs reprises après la construction de quelques projets dont la trace de pile suivante contient l'erreur "Il ne reste plus d'espace sur le périphérique", bien qu'il y ait suffisamment d'espace sur le disque. Il n'y a pas de limites de quotas sur aucun dossier. Vous trouverez ci-dessous la sortie de différentes commandes système.

Voici des informations clés sur le système:

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

Il y a 50% d'espace libre selon df

$ 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

ensuite, j'ai vérifié les poignées de fichier ouvertes par lsof, c'est aussi dans les limites.

lsof | wc -l
694

alors j'ai vérifié le fichier gère par cette commande

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

Erreur détaillée

[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) 
18
Sohel Khan

L'erreur "plus d'espace disponible sur le périphérique" n'est pas nécessaire, car elle manque de capacité de stockage. Comme elle le suggère, elle peut aussi être due à un manque de nœuds i sur le système de fichiers. En d'autres termes, un système de fichiers donné ne peut contenir qu'un nombre limité de fichiers. Lancer df suggérera que tout va bien.

Voir cet article pour plus d'informations.

Vous devez soit supprimer certains fichiers dont vous n’avez plus besoin, soit placer Hudson sur un système de fichiers différent.

Il n’est pas rare dans les situations où vous savez que vous aurez beaucoup de petits fichiers pour construire un système de fichiers avec une table inode explicitement plus grande.

26
skaffman

Cela est dû au débordement de mémoire.

lancez cette commande pour vérifier la taille de la mémoire disponible

df

Si vous trouvez 100% ou presque 100% sur un disque, supprimez les données de ce répertoire, mais soyez prudent, puis réessayez.

Dans la plupart des cas, le répertoire/tmp sera à 100%, donc redémarrez votre ordinateur.

Sudo reboot

cela effacera tous les fichiers du répertoire tmp.

1
jatin

Faites aussi ipcs -u et ipcs -p pour voir si le "manque d’espace" correspond à la mémoire SHM pleine et aux applications qui l’utilisent. Si les segments alloués sont égaux à sysctl kernel.shmmni, vous êtes avec un shm "complet". Vous pouvez également comparer avec la sortie ipcs -l, car cela indique les limites du système.

La dernière version de Java pourrait abuser de l’utilisation de shm jusqu’à ce qu’elle ne soit plus libre. Fermez le programme qui abuse de shm ou augmentez les kernel.shmmni et kernel.shmmax sysctl pour augmenter l’espace shm disponible

0
higuita