tutorial grails grails-3.1

tutorial - grails 3



Grails Controller/Integration Test tiene éxito pero se bloquea para siempre (1)

Absolutamente perplejo en esto.

Tengo dos pruebas de integración del controlador que pasan con éxito. Sin embargo, cuando se ejecuta en Intellij o mediante gradle check , la JVM nunca sale. Si comento las pruebas de integración completas, la JVM sale limpiamente.

Al depurar cualquiera de las pruebas de integración, puedo presionar pausa y ver que hay varios hilos en diferentes estados: EN ESPERA, EN EJECUCIÓN, DORMIDO.

La base de datos utilizada en application.yml es puramente en memoria:

url: jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE

Cambiar esto a archivo no soluciona el problema. Cambiar DB_CLOSE_ON_EXIT=TRUE tampoco ayuda.

Intenté eliminar @Rollback e incluso usar @Transactional con un tiempo de espera, pero eso no lo soluciona.

Crear una prueba de integración en un nuevo proyecto funciona sin punto muerto / colgando / esperando.

He retrocedido a través de las revisiones para encontrar el conjunto de cambios donde comenzó este comportamiento, pero los cambios fueron puramente en GSP, controladores y un método adicional de afirmación y prueba en una de las pruebas de integración.

Las últimas líneas en los registros son:

INFO org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext - Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@73386d72: startup date [Mon May 30 18:48:25 BST 2016]; root of context hierarchy INFO org.springframework.context.support.DefaultLifecycleProcessor - Stopping beans in phase -2147483648 INFO org.grails.plugins.datasource.TomcatJDBCPoolMBeanExporter - Unregistering JMX-exposed beans on shutdown INFO org.grails.plugins.datasource.TomcatJDBCPoolMBeanExporter - Unregistering JMX-exposed beans INFO org.hibernate.tool.hbm2ddl.SchemaExport - HHH000227: Running hbm2ddl schema export INFO org.hibernate.tool.hbm2ddl.SchemaExport - HHH000230: Schema export complete

Intenté reducir los métodos de prueba de integración a un método y el problema aún ocurre.

Las versiones que estoy usando son:

$ ~/apps/grails-3.1.5/bin/grails --version |Grails Version: 3.1.5 |Groovy Version: 2.4.6 |JVM Version: 1.8.0_92

Windows 10 64bit.

Aquí hay un volcado de hilo.

No tengo idea de cómo depurar esto más. ¿Algunas ideas?


Me gustaría activar el registro de nivel de depuración. Además, si puedes, actualizaría Grails a algo posterior a 3.1.9. (3.1.11 es actual mientras escribo esto)

Justo alrededor de grillas v3.1.5 hubo inconsistencias de configuración entre Grails e Hibernate. El equipo de Grails estaba actualizando rápidamente varias interfaces, y lo superaron rápidamente.

El resultado fue que no terminaste ejecutando la configuración que creías que eras. También afectó el caché y la gestión de transacciones.

En ese momento, tuve que crear configuraciones redundantes para asegurarme de que Grails obtenía las configuraciones en un nivel, hibernaba en otro. Ya no tienes que hacer esto, pero en ese momento tuve que usar una configuración como la que se muestra aquí .

Para encontrar el problema, activé el registro de depuración para Grails e hibernate y todos mis controladores de bases de datos y me dediqué a recorrer todo el camino.

Este complemento también ayuda con la información de supervisión detallada: