[erlang-questions] os_mon_mib error

Martin Bjorklund <>
Wed May 28 08:19:35 CEST 2008


Hi,

"Edwin Fine" <> wrote:
> Hi all,
> 
> I am learning to use OTP snmp. I've done an snmp:config() for a v3 agent,
> which is running ok, it seems. However, when I do an snmpwalk, I get a
> wrongValue error. I'm running Ubuntu Feisty x86_64 using Erlang/OTP R12B-2.
> This only happens if I do an os_mon_mib:load(snmp_master_agent).
> 
> What am I doing wrong?

This is a bug in os_mon.

> $ snmpwalk -v 3 -l authPriv -m ALL -u initial -a MD5 -A **** -x DES -X ****
> 127.0.0.1:4000 otp
> ... snip ...
> OTP-MIB::applVsn.1.7 = STRING: 2.12.2
> OTP-OS-MON-MIB::loadMemorySystemWatermark.0 = INTEGER: 80
> OTP-OS-MON-MIB::loadMemoryErlProcWatermark.0 = INTEGER: 5
> Error in packet.
> Reason: (genError) A general failure occured
> Failed object: OTP-OS-MON-MIB::loadMemoryErlProcWatermark.0

This tells us that doing a GET-NEXT on loadMemoryErlProcWatermark.0
fails.  The object after this one in the MIB is
loadSystemTotalMemory.

> The agent error is:
> 
> User error: Got 8386678784 from {os_mon_mib,load_table,[]}. Using wrongValue

This tells us that when the agent called the instrumentation function
for loadSystemTotalMemory (which is the function load_table in module
os_mon_mib), it returned 8386678784, which the agent says is a bad
value.

The reason for the wrongValue is that loadSystemTotalMemory is a
Gauge32, and 8386678784 is not a 32-bit integer.  And this is since
you run on a 64-bit platform.

The MIB could be extended with an object of type CounterBasedGauge64
from the HCNUM-TC MIB (RFC2856), or the implementation would have to
truncate this value.  In either case - bug in os_mon.


/martin



More information about the erlang-questions mailing list