Начну в порядке от самой простой реализации до самой сложной.
Начну в порядке от самой простой реализации до самой сложной.
Да, именно с таким сообщением начала падать kafka спустя некоторое время после запуска. Включение режима debug немного увеличило “понятность”
ERROR Error while accepting connection (kafka.network.Acceptor)
java.net.SocketException: Invalid argument
at sun.nio.ch.Net.setIntOption0(Native Method)
at sun.nio.ch.Net.setSocketOption(Net.java:341)
at sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:190)
at sun.nio.ch.SocketAdaptor.setBooleanOption(SocketAdaptor.java:271)
at sun.nio.ch.SocketAdaptor.setTcpNoDelay(SocketAdaptor.java:306)
at kafka.network.Acceptor.accept(SocketServer.scala:654)
at kafka.network.Acceptor.run(SocketServer.scala:579)
at java.lang.Thread.run(Thread.java:748)
Что бы запустить скрипт разово, существует несколько методов:
Данная заметка была найдена на просторах интернета, но что бы не потерялась, добавлю себе. И так, если получаем ошибку:
genunix: [ID 702911 kern.notice] basic rctl process.max-stack-size (value 8388608) exceeded by process 938819 uid 80 ...
Симптомы: системные диски время от времени вгружаются на 100% busy. Через rwsnoop вычисляем, что это fmd просто конски пишет в файлы:
/var/fm/fmd/fltlog
/var/fm/fmd/ckpt/eft
Ротация, перезапуск fmd ни к чему не приводит. С помощью утилиты fmstat посмотрим счётчики событий fmd
ASLR (англ. address space layout randomization — «рандомизация размещения адресного пространства») — технология, применяемая в операционных системах, при использовании которой случайным образом изменяется расположение в адресном пространстве процесса важных структур данных, а именно образов исполняемого файла, подгружаемых библиотек, кучи и стека.
Недавно в логах получил сообщение
The number of correctable errors associated with this memory module has exceeded acceptable levels.
Как точно определить сбойный модуль? Через fmadm faulty определяем UUID события и смотрим детали по нему:
Если так случилось, что ваш grub перестал грузить Solaris, то эта статья для вас. Скажу сразу, что бывает 2 режима: rescue и normal. Если вам не повезло и вас выбрасывает в rescue (об этом сообщает приглашение grub rescue>), то нужно с него загрузится в normal и потом уже грузить ОС. Отличие rescue от normal’a – значительны: в rescue доступны лишь 4 команды (ls, set, unset, insmod). Если у вас режим normal, то можете пропустить этот абзац.
Исходные данные: в пуле с дисками 500Gb построенном на slice’ах вылетел один из дисков. Новый диск – 2Tb. И так:
# zpool status rpool pool: rpool state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. Run 'zpool status -v' to see device specific details. scan: resilvered 2.20G in 4m56s with 0 errors on Fri Jan 18 07:07:30 2019 config: NAME STATE READ WRITE CKSUM rpool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c3t1d0s0 UNAVAIL 0 0 0 c3t0d0s0 ONLINE 0 0 0 errors: No known data errors
Будем искать через mdb. Что бы иметь возможность это сделать, нужно что бы приложение было запущено в режиме debug. Если в самом приложении отсутствует такая возможность, тогда нужно включить его в окружении и потом запустить приложение:
$ export LD_PRELOAD=libumem.so $ export UMEM_DEBUG=default $ export UMEM_LOGGING=transaction