Постоянно крашит netxmsd

Started by Argonauts, March 25, 2025, 03:52:29 AM

Previous topic - Next topic

Argonauts

Добрый день.
Ubuntu 22.04.5 LTS
NetXMS server version 5.1.4 build tag 5.1-561-g12f4968337
Раз в пару минут крашит процесс netxmsd. Процесс уходит в ребут и некоторое время им на веб морду можно зайти и пользоваться.
При запуске с gdb спотыкается на инициализации модуля криптографии, лог прицепил. В какую сторону копать? dbg_D6_25_3_25.txt

Filipp Sudanov

Процесс запуска через gdb такой:

убедиться, что в системе установлен пакет netxms-dbg

gdb /usr/bin/netxmsd

run -D

Дождаться креша процесса, потом дать команды:
bt
kill
quit

Argonauts

Quote from: Filipp Sudanov on March 25, 2025, 07:35:39 AMПроцесс запуска через gdb такой:

убедиться, что в системе установлен пакет netxms-dbg

gdb /usr/bin/netxmsd

run -D

Дождаться креша процесса, потом дать команды:
bt
kill
quit
Вывод

Thread 306 "$POLLERS/WRK" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc86fb6c0 (LWP 19251)]
SNMP_Variable::getValueAsInt (this=0x0) at /build/nxbuild.UCA1HQ0U7e/build/netxms-5.1.5/src/snmp/libnxsnmp/variable.cpp:275
warning: 275    /build/nxbuild.UCA1HQ0U7e/build/netxms-5.1.5/src/snmp/libnxsnmp/variable.cpp: No such file or directory
(gdb) bt
#0  SNMP_Variable::getValueAsInt (this=0x0) at /build/nxbuild.UCA1HQ0U7e/build/netxms-5.1.5/src/snmp/libnxsnmp/variable.cpp:275
#1  0x00007ffff7f95d7f in NetworkDeviceDriver::getInterfaceState (this=this@entry=0x7ffff7ef1080 <_ZL15s_defaultDriver.lto_priv.0>, snmp=snmp@entry=0x7fffc6c00000,
    node=node@entry=0x7fffc7c55810, driverData=<optimized out>, ifIndex=1, ifName=<optimized out>, ifType=1, ifTableSuffixLen=0, ifTableSuffix=0x0,
    adminState=0x7fffc86f9234, operState=0x7fffc86f9230, speed=0x7fffc86f9238) at /build/nxbuild.UCA1HQ0U7e/build/netxms-5.1.5/src/server/libnxsrv/ndd.cpp:959
#2  0x00007ffff7b5ed47 in Node::getInterfaceStateFromSNMP (speed=0x7fffc86f9238, operState=0x7fffc86f9230, adminState=0x7fffc86f9234, iface=...,
    pTransport=0x7fffc6c00000, this=0x7fffc7c55810) at ../../../src/server/include/nms_objects.h:2274
#3  Interface::statusPoll (this=0x7fffcc857010, session=<optimized out>, rqId=0, eventQueue=0x7fffcb02b480, cluster=0x0, snmpTransport=0x7fffc6c00000, nodeIcmpProxy=0)
    at /build/nxbuild.UCA1HQ0U7e/build/netxms-5.1.5/src/server/core/interface.cpp:537
#4  0x00007ffff7bb1658 in Node::statusPoll (this=0x7fffc7c55810, poller=0x7fffc2774580, pSession=0x0, rqId=0) at /usr/include/c++/13/bits/shared_ptr_base.h:1665
#5  0x00007ffff7c54371 in Pollable::doStatusPoll (this=0x7fffc7c56390, poller=0x7fffc2774580)
    at /build/nxbuild.UCA1HQ0U7e/build/netxms-5.1.5/src/server/core/pollable.cpp:69
#6  0x00007ffff7ada49d in __ThreadPoolExecute_Wrapper_1<Pollable, PollerInfo*> (arg=0x7fffc1e4db40) at ../../../include/nms_threads.h:1191
#7  0x00007ffff79be810 in ProcessSerializedRequests (data=0x7fffc25dff40) at /build/nxbuild.UCA1HQ0U7e/build/netxms-5.1.5/src/libnetxms/tp.cpp:495
#8  0x00007ffff79bcdd7 in WorkerThread (threadInfo=0x7fffd2cfc1e0) at /build/nxbuild.UCA1HQ0U7e/build/netxms-5.1.5/src/libnetxms/tp.cpp:214
#9  0x00007ffff79b5f66 in ThreadCreate_Wrapper_1<WorkerThreadInfo*> (context=0x7fffd2cfc1f0) at ../../include/nms_threads.h:539
#10 0x00007ffff729caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#11 0x00007ffff7329c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb) kill
Kill the program being debugged? (y or n) y
[Inferior 1 (process 18910) killed]
(gdb)

Victor Kirhenshtein

Похоже что там какое-то устройство, которое дает ответ на SNMP запрос, но при этом там не все OIDы. Я добавил дополнительную проверку на наличие всех полей в ответе (коммиты 301b0d140f в 5.2 и f06eead655 в 5.1), в следующем релизе будет.

Argonauts

Я могу как-то понять ,что за нод так ответил? Мог бы скинуть его спецификации, если может помочь

Victor Kirhenshtein

можно попробовать после падения дать такие команды в gdb:

frame 4
print m_name
print m_id

должен напечатать имя и ID ноды

Argonauts

Итак, это snr ups-onrt-3-m
Отключил его от manage, пока не крашило ничего