Details
-
Type:
Problem report
-
Status: Closed
-
Priority:
Trivial
-
Resolution: Fixed
-
Affects Version/s: 4.4.5
-
Fix Version/s: 5.0.8rc1, 5.2.4rc1, 5.4.0alpha1, 5.4 (plan)
-
Component/s: Agent (G)
-
Labels:None
-
Team:Team C
-
Sprint:Sprint 69 (Oct 2020), Sprint 70 (Nov 2020), Sprint 71 (Dec 2020), Sprint 72 (Jan 2021)
-
Story Points:0.25
Description
Problem:
wmi.getall[] - returns incorrect value when using data type real32
Usage:
C:\Program Files\Zabbix Agent>zabbix_get -s 127.0.0.1 -k wmi.get[root\OpenHardwareMonitor,"select Max from sensor where (Parent LIKE '%RAM%' AND SensorType = \"Load\")"]
Returned value: 79.757965
C:\Program Files\Zabbix Agent>zabbix_get -s 127.0.0.1 -k wmi.getall[root\OpenHardwareMonitor,"select Max from sensor where (Parent LIKE '%RAM%' AND SensorType = \"Load\")"]
Returned value: [\{"Max":4635312884778270720.}]
Description:
When using wmi.getall[], if the object parameters have type Real32 the returned value is incorrect. When using wmi.get[] there's no such issue.
Tried to debug it, the returned value using key wmi.getall[] as to IEEE 754 (decimal number represented in hex) - the resulted value is incorrect. Also it falls over the 32-bits.
P.S. Also the left-most dot after the digits looks suspicious.