Процессор привязан – проблема с java.util.zip.ZStreamRefJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Процессор привязан – проблема с java.util.zip.ZStreamRef

Сообщение Anonymous »

Мы наблюдаем эту периодически возникающую проблему в производстве. Загрузка ЦП фиксируется на уровне 50% (2-ядерный ЦП) случайным образом и никогда не возвращается. Единственный вариант — перезагрузить сервер.
Вот как выглядит процессор в Dynatrace

Изображение
Вот так выглядит дамп потока, когда мы анализировали его с помощью dynatrace.

Изображение


Изображение


По моим исследованиям выяснилось, что произошел дефект jdk

Код: Выделить всё

Calling 'java.util.zip.Deflater.finish()' prematurely hangs the application.
The application is spinning consuming one cpu
https://bugs.openjdk.java.net/browse/JDK-8060193

Происходит только случайным образом, когда задействовано несколько фильтров.

Мне удалось воспроизвести это, используя тестовый класс в jira выше на виртуальной машине CentOs, которая имеет JDK «1.8.0_201»
Это было удивительно, потому что, согласно документации и билету, это было исправлено.

При дальнейшем исследовании обнаружилось, что аналогичный дефект снова открылся в jdk.

https://bugs.openjdk.java.net/browse/JDK-8193682

Теперь команда не желает работать над ним, если кто-то не сможет его воспроизвести.
Поскольку в производстве это происходит случайным образом, я не знаю, как это воспроизвести. В тестовом классе https://bugs.openjdk.java.net/browse/JDK-8060193 все еще есть проблемы. Является ли это вообще допустимым тестовым примером?
Если это действительно, то будут проблемы каждый раз, когда мы отправляем сжатые данные.
  • Наша среда выполнения JRE — Jdk 1.8
  • Сжатие осуществляется в tomcat, а не в балансировщике нагрузки.
Любые указания относительно того, почему это происходит и как мы можем решить это?

Обновление:
В одной из библиотек, которые мы используем, выдавалось исключение
Неверный формат символа UTF-8 (неожиданный байт непродолжения 0x00, сразу после стартового байта 0xfd)

Фамилия, Имя
Как мы видим, это не обычный апостроф. Мы можем получить это, скопировав слово, которое автоматически исправляет обычный апостроф на этот необычный символ.

Наш воспроизводитель выдал ошибку, но процессор не зависал. Я думаю, это происходит при большом объеме трафика.

Подробнее здесь: https://stackoverflow.com/questions/561 ... zstreamref
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»