Glassfish / Payara неосторожно останавливается - PullRequest
0 голосов
/ 13 февраля 2019

Мы разрабатываем приложение Vaadin, использующее жидкостную базу для создания схемы h2.Во время создания схемы процесс внезапно останавливается.Отладка не помогает, так как кажется, что это проблема синхронизации.

После некоторой глубокой и тщательной оценки я обнаружил, что могу убить сервер, просто выполнив

logger.info("CREATE TABLE PUBLIC.ACT_RU_EXT_TASK (ERROR_MSG_ VARCHAR(2000))");

Это переводитв сообщение

631448 [http-listener(1)] INFO liquibase.executor.jvm.JdbcExecutor - CREATE TABLE PUBLIC.ACT_RU_EXT_TASK (ERROR_MSG_ VARCHAR(2000))

Я еще больше упростил его до

logger.info("ERROR");

, что убьет сервер, но не мгновенно, а с небольшой задержкой.

Из своей отладки я знаю, что регистрация ведется через slf4j, затем направляется на jul.SimpleLogger, который помещает сообщение на System.err, который снова захватывается потоком Payara и затем регистрируется вЛог-файлы.Похоже, что выполнение flush() на System.err вызывает отключение, хотя и не на 100% надежно.

Переключение с Payara на Jetty или любой другой сервер решает проблему, а также запускает код из консоли.

Есть идеи?

Есть идеи по локализации партии, которая фактически выполняет отключение?

...