2010-07-26 714 views
12

Hudson falla repetidamente después de generar pocos proyectos con el siguiente seguimiento de pila con el error "No queda espacio en el dispositivo", aunque hay espacio suficiente en disco. No hay límites de cuotas en ninguna carpeta. A continuación se muestra la salida de diferentes comandos del sistema.Hudson falla con el error "No queda espacio en el dispositivo" aunque hay suficiente espacio en el sistema

Aquí es la información clave del sistema:

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 

Hay 50% de espacio libre de acuerdo con 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 

próxima he comprobado de archivo abierto por lsof, eso es también dentro del límite

lsof | wc -l 
694 

luego revisé los identificadores de archivos con este comando

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

error detallado

[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) 

Respuesta

22

El "no queda espacio en el dispositivo" error no es necesario causada por quedarse sin capacidad de almacenamiento, ya que sugiere, también puede ser causa mediante la ejecución de i -nodos en el sistema de archivos. En otras palabras, un sistema de archivos dado solo puede contener tantos archivos. Ejecutando df sugerirá que todo está bien.

Consulte this article para obtener más información.

Debe eliminar algunos archivos que ya no necesita o poner Hudson en un sistema de archivos diferente.

No es raro en situaciones donde usted sabe que tendrá muchos archivos pequeños para construir un sistema de archivos con una tabla de inode explícitamente más grande.

+0

Muchas gracias skaffman El problema desapareció cuando ejecuté hudson como root.Por lo que fue probablemente debido a Hudson fue escrito en el que aún no ha tenido acceso ... Gracias y Saludos, Sohel –

+2

brillante enlace 'df -i' salvado el pellejo en este –

0

Se debe a un exceso de memoria.

Ejecutar este comando para comprobar el tamaño de la memoria disponible

df 

Si encuentra 100% o cerca de 100% para cualquier disco, elimine los datos de ese directorio, pero tenga cuidado, y luego vuelve a intentarlo.

En la mayoría de los casos, el directorio/tmp serán 100%, por lo que reiniciar la máquina

sudo reboot 

que borrará todos los archivos del directorio tmp.

+0

Esta solución particular funciona para mí. Gracias –

0

También haga ipcs -u y ipcs -p para ver si el "espacio libre" es la memoria SHM llena y qué aplicaciones está utilizando. Si los segmentos asignados son iguales a sysctl kernel.shmmni, tiene un valor "completo". También puede comparar con la salida ipcs -l, ya que muestra los límites del sistema.

La última versión de java podría abusar del uso de shm hasta que no sea gratuito. Cierre el programa que está abusando del shm o aumente el kernel.shmmni y kernel.shmmax sysctl para aumentar el espacio shm disponible

Cuestiones relacionadas