Mi compilación Jenkins se cuelga entre los pasos de compilación y postcompilación.
La salida de la consola muestra que hay una espera de 6 minutos (pero he visto esperas de hasta una hora):
10:53:26 BUILD FAILED in 1m 7s
10:53:26 4 actionable tasks: 4 executed
10:53:26 Build step 'Invoke Gradle script' changed build result to FAILURE
10:53:26 Build step 'Invoke Gradle script' marked build as failure
11:09:29 [CucumberReport] Using Cucumber Reports version 4.9.0
Encontré esto y estas preguntas que tienen problemas similares, y dicen que la solución se está estableciendo -DSoftKillWaitSeconds=0
enjenkins.xml
.
Sin embargo, necesito una forma de establecer la opción solo para trabajos particulares, sin interferir con la configuración global de Jenkins (no me gustaría meterme con otros proyectos).
EDITAR:
Cuando aborto manualmente el trabajo, antes del paso [CucumberReport], aún se generan informes de Cucumber.
También marqué la casilla de verificación Abortar la compilación si está atascada en las opciones del Entorno de compilación, con la estrategia de Tiempo de espera establecida en No Activity
(Tiempo de espera segundos = 2).
Cuando compilo el proyecto con esta configuración, la compilación fallará con "Abortado después de 0 segundos" que se muestra en el Historial de compilación, como antes, pero la salida de la consola será la misma. (Nada cambia, se generarán informes de pepino pero después de un cierto tiempo de espera).
timeout
opción en tu tubería? Definitivamente debe publicar una versión simplificada de su tubería. Es difícil "adivinar" lo que podría estar mal. Además, esta pregunta probablemente sea más adecuada para estar en devops.stackexchange.comRespuestas:
No es posible seleccionar un valor específico de trabajo para
SoftKillWaitSeconds
(el valor se deriva del núcleo de Jenkins en un punto donde no se conoce el nombre del trabajo).Mi recomendación es arreglar el manejo de aborto en su trabajo , por lo que no dependerá de un "tiempo de espera de muerte suave". Si está ejecutando en un sistema Unix-ish, puede asegurar esto ejecutando su trabajo en un nuevo grupo de procesos (
set -m
en bash) y (por ejemplo) configurando una trampa de salida adecuada.fuente
Estamos utilizando el complemento Build-timeout para eliminar trabajos atascados con la estrategia de tiempo de espera establecida en
No Activity
oAbsolute
. Para mí, este es un buen enfoque cuando usas proyectos de estilo libre. La razón por la que su compilación se "cancela después de 0 segundos" es que lo más probable es que haya procesos secundarios sin terminar. De la documentación :Puedes probar la estrategia de tiempo de espera absoluto. Puede definir una variable global, para que no repita el valor de tiempo de espera en los trabajos:
Si esto no funciona, puede intentar buscar en los registros https: // your-jenkins-server / log o en un volcado de subprocesos.
El bloqueo puede deberse a una versión nueva / antigua de un complemento. Trate de encontrar cuáles son los procesos secundarios inacabados. Intente deshabilitar las acciones posteriores a la compilación una por una para encontrar la que puede ser la causa del problema. Puedes ver /superuser/1401879/debugging-what-happens-when-a-jenkins-build-unexpectedly-pauses-or-hangs
fuente