NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: Akira on February 05, 2021, 09:01:30 AM

Title: после переезда на 3.7 сломалось SecondsToUptime()
Post by: Akira on February 05, 2021, 09:01:30 AM
Uptime на всех устройствах мониторил по SNMP. Преобразовывался в текстовый вид.
Transformation стоял такой:
SecondsToUptime($1/100)

Стал писать ошибку
Error 19 in line 1: Function or operation argument is not a whole number
Title: Re: после переезда на 3.7 сломалось SecondsToUptime()
Post by: Filipp Sudanov on February 05, 2021, 10:12:22 PM
Видимо что-то поменялось в языке. По документации SecondsToUptime принимает целый агрумент, так что можно округлить:

SecondsToUptime(round($1/100))
Title: Re: после переезда на 3.7 сломалось SecondsToUptime()
Post by: Akira on February 06, 2021, 06:04:44 AM
Quote from: Filipp Sudanov on February 05, 2021, 10:12:22 PM
Видимо что-то поменялось в языке. По документации SecondsToUptime принимает целый агрумент, так что можно округлить:

SecondsToUptime(round($1/100))

неа, ошибка осталась. я так уже пробовал
Title: Re: после переезда на 3.7 сломалось SecondsToUptime()
Post by: Filipp Sudanov on February 08, 2021, 04:48:34 PM
У меня не получилось повторить. Какая точно версия? Можете проверить на самой свежей 3.7?
Проявляется только в трансформационном скрипте, или если на ноде сделать Execute Server Script, то там тоже? Что именно в $1?
Title: Re: после переезда на 3.7 сломалось SecondsToUptime()
Post by: Akira on February 09, 2021, 07:21:20 AM
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

Откуда получается не целое?
Title: Re: после переезда на 3.7 сломалось SecondsToUptime()
Post by: Victor Kirhenshtein on February 09, 2021, 01:47:17 PM
Это баг в NXSL интерпретаторе, уже починили. В следующем релизе будет работать.
Title: Re: после переезда на 3.7 сломалось SecondsToUptime()
Post by: sergey_t on February 10, 2021, 07:59:45 AM
попробовал обновиться на 145 версию, глюк остался, откатил
Title: Re: после переезда на 3.7 сломалось SecondsToUptime()
Post by: Filipp Sudanov on February 12, 2021, 04:32:20 PM
Попробуйте 3.8, она вышла только что
Title: Re: после переезда на 3.7 сломалось SecondsToUptime()
Post by: Akira on February 15, 2021, 07:32:16 AM
Quote from: Filipp Sudanov on February 12, 2021, 04:32:20 PM
Попробуйте 3.8, она вышла только что
Уже. Эта проблема ушла
Title: Re: после переезда на 3.7 сломалось SecondsToUptime()
Post by: sergey_t on February 15, 2021, 08:55:44 AM
после обновы на *****.8.120 проблема ушла