после переезда на 3.7 сломалось SecondsToUptime()

Started by Akira, February 05, 2021, 09:01:30 AM

Previous topic - Next topic

Akira

Uptime на всех устройствах мониторил по SNMP. Преобразовывался в текстовый вид.
Transformation стоял такой:
SecondsToUptime($1/100)

Стал писать ошибку
Error 19 in line 1: Function or operation argument is not a whole number

Filipp Sudanov

Видимо что-то поменялось в языке. По документации SecondsToUptime принимает целый агрумент, так что можно округлить:

SecondsToUptime(round($1/100))

Akira

Quote from: Filipp Sudanov on February 05, 2021, 10:12:22 PM
Видимо что-то поменялось в языке. По документации SecondsToUptime принимает целый агрумент, так что можно округлить:

SecondsToUptime(round($1/100))

неа, ошибка осталась. я так уже пробовал

Filipp Sudanov

У меня не получилось повторить. Какая точно версия? Можете проверить на самой свежей 3.7?
Проявляется только в трансформационном скрипте, или если на ноде сделать Execute Server Script, то там тоже? Что именно в $1?

Akira

netxms-server-3.7.145-x64.exe

Снятие данных по SNMP - .1.3.6.1.2.1.1.3.0
Value - 2108117300
Raw - 2108117300

С transformation SecondsToUptime($1) - 24399 days 15:45
С transformation SecondsToUptime($1/100) - ERROR
С transformation SecondsToUptime($1/100) через Test и ручным вводом 600 - смотреть картинку + ошибка "Error 19 in line 1: Function or operation argument is not a whole number"

Что любопытно.
Если transformation - "$1" - выходные данные Uptime = 2108193800
Если transformation - "$1/100" - выходные данные Uptime = 21081979.000000

Откуда получается не целое?

Victor Kirhenshtein

Это баг в NXSL интерпретаторе, уже починили. В следующем релизе будет работать.

sergey_t

попробовал обновиться на 145 версию, глюк остался, откатил

Filipp Sudanov


Akira


sergey_t

после обновы на *****.8.120 проблема ушла