絶対にこれをスムーズにしてください。Grailsコントローラ/統合テストは成功しましたが、永久にハングします
2つのコントローラ統合テストが成功しました。ただし、Intellijまたはgradle check
で実行している場合、JVMは終了しません。統合テスト全体をコメントアウトすると、JVMはきれいに終了します。
いずれかの統合テストをデバッグすると、一時停止し、いくつかのスレッドが異なる状態にあることがわかります。待機中、実行中、スリープ中。
application.yml
に使用されるデータベースは、メモリ内1純粋である:
url: jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
ベースを提出し、これを変更すると、問題が解決しません。 を変更しても役に立ちません。
@Rollback
を削除しようとしましたが、@Transactional
をタイムアウトで使用しても解決しましたが、それは修正されません。
新しいプロジェクトで統合テストを作成すると、デッドロック/ハング/待機なしで動作します。
この動作が開始されたチェンジセットを見つけるためにリビジョンに移動しましたが、変更は純粋にGSP、コントローラで行われ、インテグレーションテストの1つで追加のアサーション&テストメソッドでした。ログに
最後の行は、次のとおりです。
INFO org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext - Closing org.springframework.boot[email protected]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
私は1つの方法に統合テストメソッドを伐採しようとしましたし、問題が引き続き発生します。私が使用している
バージョンは次のとおりです。
$ ~/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の64ビット。
Here'sスレッド・ダンプ。
これをさらにデバッグする方法はわかりません。何か案は?
あなたは、データベースのURLに 'DB_CLOSE_ON_EXIT = true'を設定してみてくださいましたか? – Joch
ちょうど試しましたが、修正しません。しかし、ありがとう。投稿が更新されました。 –
デーモンとして停止したり設定しなかったスレッドはありませんか?新しいプロジェクトで統合テストを実行するとJVMが停止しましたか? – Joch