I am getting an odd transformation error (that never occurred before, until after the 2.2.1 update). This is happening on the NetXMS server agent node.
(HOSTNAME xxx.xxx.xxx::227::TransformationScript) execution error: Error 13 in line 1: Cannot do automatic type cast
Unfortunately from this error I am not able to determine which of the several data collection items I have is the culprit. I am getting results back on all my collection items, no invalid data but still getting the error... thoughts?
Thanks in advance!
A little more info, I tracked down which item it was... it is actually a Sonicwall node, the transformation is a simple ($1 / 1000000) script.... I rebuilt the MIBS and rebooted... doubt that will help.
What is DCI data type?
Hi Victor,
These are Unsigned INT64
Also, I am finding (perhaps related) when I do an 'walk' on any SNMP object, I get: "Cannot do SNMP MIB tree walk: Access denied" and it worked before...
I changed to INT and it works fine now... Thanks, I also found a thread on the SNMP walk issue. Fixed the permission and all good now.
Hijacking this thread as I'm seeing the same error with transformation of uint64 after upgrade to 2.2.1
DCI in question is Filesystem.Free(/var)
Transformation script after trial and error
trace(0, $node->name . " " . $dci->name . " " . $1 . " " . typeof($1));
return uint64($1 / (1024 * 1024));
Relevant part from log when above DCI is polled
2017.12.12 03:57:13.034 *I* alina FileSystem.Free(/var) 58124193792 uint64
2017.12.12 03:57:13.034 *W* Failed to execute transformation script for object 865 "alina" DCI 813 "FileSystem.Free(/var)": Error 13 in line 2: Cannot do automatic type cast
Also tried without casting to uint64.
Changing the transformation script to return null (which from my understanding of the hint should return the raw value) results in free space being reported as 0. Actual value printed to log for reference.
Transformation script
trace(0, $node->name . " " . $dci->name . " " . $1 . " " . typeof($1));
return null;
return uint64($1 / (1024 * 1024));
Log
2017.12.12 04:07:10.221 *I* alina FileSystem.Free(/var) 58124161024 uint64
Transformation script before update was simply
$1 / (1024 * 1024)
Clearing out the transformation script returns the raw value.
Update...
Changing the transformation script to this works
return int64($1) / (1024 * 1024);