Estoy ejecutando varios proyectos en CruiseControl.NET. Muchos de ellos no tienen errores de compilación y tienen compilaciones exitosas. Todos intentan extraer el último código antes de construir.Errores SVN 500 esporádicos con CruiseControl.NET
Me he dado cuenta de que con frecuencia fallan en la construcción; CruiseControl informa "Excepción". La excepción es un error SVN 500 (error interno del servidor). Golpea de forma aleatoria pero persistente (por ejemplo, en un proyecto, todas las construcciones alternativas fallan).
He intentado verificar algunos de estos proyectos esporádicamente defectuosos con las mismas credenciales, y funciona. Sé que los proyectos se crean, porque no todas las construcciones fallan.
¿Cuál podría ser el problema?
Por lo que vale la pena, aquí está la línea superior de una excepción ejemplar (sin URL del proyecto SVN o credenciales):
ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS request for 'https://some/url/trunk'
. Process command: C:\Program Files\CollabNet Subversion Client\svn.exe log https://some/url/trunk -r "{2010-12-04T09:09:19Z}:{2010-12-07T09:08:48Z}" --verbose --xml --username ******** --password ******** --non-interactive --no-auth-cache
Editar: A veces esto parece ser debido a que hay un conflicto de SVN en el local de carpeta. Pero no es consistente.
Bounty: ¡Tengo una recompensa para una solución general a esto: ¿cómo puede CC.NET ser configurado para hacer frente con gracia con errores SVN, es decir, no tratar fallos SVN desencadenados por una verificación de actualización periódica (a diferencia de las compilaciones diarias programadas) como fallas de compilación, pero en su lugar retroceden graciosamente hasta que se solucione o hasta que la conexión se recupere.
No he logrado resolver esto por mi cuenta, aunque no soy un experto en CC.NET y no he buscado durante mucho tiempo. ¿Hay soporte para esto o necesitaría codificación? ¡Gracias!
Para aclarar,
- Tenemos un servidor CC.NET configurar para comprobar si hay nuevas confirmaciones y la caja + + construir prueba de todos los cambios a continuación, informan el resultado.
- Si, sin embargo, el servidor SVN se cae o si perdemos la conexión, se trata como si el último compromiso rompiera la construcción: establece el estado de compilación en rojo y envía un correo electrónico al último committer como si fuera su culpa .
- Sí, esto sería un problema para un trabajo de compilación de una vez al día, pero para una integración continua de cada compromiso. No creo que este sea un comportamiento útil.
Independientemente de la causa, también me interesaría una forma de configurar CC.NET para ignorar las excepciones SVN en lugar de fallar la compilación. – Rup
¿No debería su configuración de CI producir lo que produciría una comprobación limpia? De ser así, si ocurre una excepción, su entorno de compilación completo no sería válido. – Mark
Para ser 100% claro aquí, en el caso de una falla de control de fuente, ¿qué exactamente estaría construyendo? En el mejor de los casos, ciertamente algo irreproducible y, por lo tanto, inútil. En el peor, algo que no se construiría en absoluto. – Mark