Отладка случайного сбоя SIGSEGV - PullRequest
0 голосов
/ 20 июня 2019

При работе приложения Kafka Connect в распределенном режиме возникают случайные сбои JVM.Приложение connect запускает пользовательский соединитель с пользовательской реализацией задачи.Приложение работает в контейнере Docker, в качестве базового образа которого используется Alpine Linux.Сбои являются абсолютно случайными, и я имею в виду следующее:

  1. Журналы ошибок не указывают на одну и ту же трассировку стека для каждого сбоя (см. Ниже)
  2. Сбои происходят прислучайные моменты времени на разных машинах
  3. Выдвижение базовой виртуальной машины (высокая загрузка процессора, высокая загрузка памяти, высокая нагрузка на диск ввода-вывода) никак не влияет на частоту сбоев

Машина 1 Авария

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fc1e92df777, pid=48, tid=0x00007fc1d899eae8
#
# JRE version: OpenJDK Runtime Environment (8.0_151-b12) (build 1.8.0_151-b12)
# Java VM: OpenJDK 64-Bit Server VM (25.151-b12 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 3.6.0
# Distribution: Custom build (Tue Nov 21 11:22:36 GMT 2017)
# Problematic frame:
# V  [libjvm.so+0x4c4777]  JVM_FindSignal+0x52586
#
# Core dump written. Default location: /home/kafka/core or core.48

Машина 2 Авария

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f7825f1da82, pid=48, tid=0x00007f78179bbae8
#
# JRE version: OpenJDK Runtime Environment (8.0_151-b12) (build 1.8.0_151-b12)
# Java VM: OpenJDK 64-Bit Server VM (25.151-b12 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 3.6.0
# Distribution: Custom build (Tue Nov 21 11:22:36 GMT 2017)
# Problematic frame:
# j  io.prometheus.jmx.shaded.io.prometheus.client.exporter.common.TextFormat.write004(Ljava/io/Writer;Ljava/util/Enumeration;)V+115
#
# Core dump written. Default location: /home/kafka/core or core.48

Машина 3 Авария

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fe4463fc2bc, pid=48, tid=0x00007fe435e06ae8
#
# JRE version: OpenJDK Runtime Environment (8.0_151-b12) (build 1.8.0_151-b12)
# Java VM: OpenJDK 64-Bit Server VM (25.151-b12 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 3.6.0
# Distribution: Custom build (Tue Nov 21 11:22:36 GMT 2017)
# Problematic frame:
# C  [libjvm.so+0x27b2bc]
#
# Core dump written. Default location: /home/kafka/core or core.48

Машина 4 Crash

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f130fcb1b93, pid=48, tid=0x00007f130d65a700
#
# JRE version: OpenJDK Runtime Environment (8.0_212-b03) (build 1.8.0_212-8u212-b03-2~deb9u1-b03)
# Java VM: OpenJDK 64-Bit Server VM (25.212-b03 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V  [libjvm.so+0x760b93]
#
# Core dump written. Default location: /home/kafka/core or core.48

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

  • нет журналов приложений
  • не записывается дамп ядра (проверено расположение, указанное в файле ошибок, но там ничего нет)

То, что мы пробовали до сих пор безрезультатно:

  • переключиться с образа докера на основе Alpine на Debian
  • , исключая агент Prometheus
  • обновление Открыть версию JDKс 8.0.151 по 8.0.212

Любая подсказка по поиску проблем будет более чем полезной!

1 Ответ

0 голосов
/ 26 июня 2019

Кажется, что использование JRE 11 для запуска приложения устранило проблему.Проект все еще построен с использованием Java 8, но запуск его с Java 11 остановил сбои.

...