From 49772bed90a4f93e778e7592096d93bb3255c8f0 Mon Sep 17 00:00:00 2001 From: Kyle Brandt Date: Fri, 11 Dec 2015 15:38:45 -0500 Subject: [PATCH] cmd/scollector: continue snmp walk on row error --- cmd/scollector/collectors/snmp.go | 7 +++++-- snmp/snmp.go | 4 ---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/cmd/scollector/collectors/snmp.go b/cmd/scollector/collectors/snmp.go index 122ef0afd3..5fa8a519f2 100644 --- a/cmd/scollector/collectors/snmp.go +++ b/cmd/scollector/collectors/snmp.go @@ -11,6 +11,7 @@ import ( "bosun.org/cmd/scollector/conf" "bosun.org/metadata" "bosun.org/opentsdb" + "bosun.org/slog" "bosun.org/snmp" ) @@ -72,7 +73,8 @@ func snmp_subtree(host, community, oid string) (map[string]interface{}, error) { a = new(big.Int) id, err := rows.Scan(&a) if err != nil { - return nil, err + slog.Errorf("Error scanning oid %v on host %v: %v", oid, host, err) + continue } switch t := id.(type) { case int: @@ -83,7 +85,8 @@ func snmp_subtree(host, community, oid string) (map[string]interface{}, error) { default: id, err := rows.Scan(&a) if err != nil { - return nil, err + slog.Errorf("Error scanning oid %v on host %v: %v", oid, host, err) + continue } switch t := id.(type) { case int: diff --git a/snmp/snmp.go b/snmp/snmp.go index 92a690c253..2b65887b38 100644 --- a/snmp/snmp.go +++ b/snmp/snmp.go @@ -29,10 +29,6 @@ func (b *binding) unmarshal(v interface{}) error { convertClass(&b.Value) _, err := asn1.Unmarshal(b.Value.FullBytes, v) if err != nil { - if _, ok := err.(asn1.StructuralError); ok { - return fmt.Errorf("type mismatch: {class:%d tag:%d} vs. %T: %v", - b.Value.Class, b.Value.Tag, v, err) - } return err } v = convertType(v)