Hello,
we recently upgraded our NetXMS server from version 6.2.5 to 7.0.2
Unfortunately, the server starts successfully but crashes with a segmentation fault approximately 60 seconds after startup. We have since reverted to NetXMS 6.2.5, which is running normally again.
Environment
OS: Ubuntu 24.04 LTS
Database: Microsoft SQL Server
ODBC Driver: Microsoft ODBC Driver 18 for SQL Server
Build: 7.0-951-g0771917ac1
NetXMS Log
2026.11.06 15:23:46.624 *I* [startup] NetXMS Server started
2026.11.06 15:23:46.728 *D* [dc.cache] Finished caching of DCI values
Approximately two seconds later:
Segmentation fault (core dumped)
System log:
System Log:
Nov 06 15:23:46 SERVERNAME systemd[1]: Started netxmsd.service - NetXMS Server.
Nov 06 15:24:05 SERVERNAME systemd[1]: netxmsd.service: Main process exited, code=dumped, status=11/SEGV
Nov 06 15:24:05 SERVERNAME systemd[1]: netxmsd.service: Failed with result 'core-dump'.
Core dump analysis
Signal: 11 (SEGV)
Current thread: Thread 108442
Relevant stack trace:
#0 HashMapBase::_get
(libnetxms.so.70 + 0x56b80)
#1 HashMap<NXSL_Identifier, NXSL_ExtMethod>::get
(libnxsl.so.70 + 0x27818)
#2 NXSL_VM::callMethod
(libnxsl.so.70 + 0x573be)
#3 NXSL_VM::execute
(libnxsl.so.70 + 0x5aba2)
#4 NXSL_VM::run
(libnxsl.so.70 + 0x60f30)
#5 NXSL_VM::run
(libnxcore.so.70 + 0x2270e6)
#6 DataCollectionTarget::getMetricFromScript
(libnxcore.so.70 + 0x227399)
#7 GetItemData
(libnxcore.so.70 + 0x1cada9)
#8 DataCollector
(libnxcore.so.70 + 0x1cdb31)
#9 ThreadPoolExecute
(libnxcore.so.70 + 0x231ac0)
This suggests that the crash occurs while NXSL is looking up an external method during execution of a script-based DCI.
We use a script-based DCI that reads the installed products table from a NetXMS agent:
function main()
{
result = "Fehler bei der Ermittlung";
table = $node.readAgentTable("System.InstalledProducts");
if (table != null)
{
indexName = table.getColumnIndex("NAME");
indexVersion = table.getColumnIndex("VERSION");
indexUser = table.getColumnIndex("USER");
result = "nicht installiert";
search = $1.toLowerCase();
for (row = 0; row < table.rowCount; row++)
{
name = table.get(row, indexName).toLowerCase();
user = table.get(row, indexUser).trim();
if (name.contains(search) && (user == ""))
{
result = table.get(row, indexVersion);
break;
}
}
}
return result;
}
In addition, shortly before the problem occurred, we installed Ubuntu system updates, including kernel updates. It's possible that the problems didn't occur until after the updates were installed—unfortunately, we can't say for sure.
libsqlite3-0/noble-updates 3.45.1-1ubuntu2.9 amd64 [aktualisierbar von: 3.45.1-1ubuntu2.8]
linux-cloud-tools-common/noble-updates 6.8.0-149.149 all [aktualisierbar von: 6.8.0-147.147]
linux-firmware-amd-graphics/noble-updates 20240318.git3b128b60-0ubuntu3.4 all [aktualisierbar von: 20240318.git3b128b60-0ubuntu3.3]
linux-generic/noble-updates 6.8.0-149.149 amd64 [aktualisierbar von: 6.8.0-147.147]
linux-headers-generic/noble-updates 6.8.0-149.149 amd64 [aktualisierbar von: 6.8.0-147.147]
linux-image-generic/noble-updates 6.8.0-149.149 amd64 [aktualisierbar von: 6.8.0-147.147]
linux-libc-dev/noble-updates 6.8.0-149.149 amd64 [aktualisierbar von: 6.8.0-147.147]
linux-tools-common/noble-updates 6.8.0-149.149 all [aktualisierbar von: 6.8.0-147.147]
Thank you in advance for your help.
Alwin