Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SNMP Queries Fail - Caused by dependency update #98

Open
pschapman opened this issue Jun 8, 2023 · 1 comment
Open

SNMP Queries Fail - Caused by dependency update #98

pschapman opened this issue Jun 8, 2023 · 1 comment

Comments

@pschapman
Copy link
Collaborator

Symptom: Target switch gets default config instead of final configuration. Testing SNMP query with ztp request snmp-test <ip> results in python traceback (shown below).

Cause: Upstream dependency for pysnmp has been updated (pyasn1).

Workaround: Downgrade pyasn1 to version 0.4.8.

pip uninstall pyasn1
pip install pyasn1==0.4.8
ztp service restart

Error Message

root@ubuntu22server:~# ztp request snmp-test 172.27.32.22

Hit CTRL+C to kill the SNMP query test

Querying 172.27.32.22 using community (secretcommunity) and OID ({u'C2960_SERIAL': u'1.3.6.1.2.1.47.1.1.1.1.11.1001', u'C3xx0_SERIAL': u'1.3.6.1.2.1.47.1.1.1.1.11.1000', u'C9x00_SERIAL': u'1.3.6.1.2.1.47.1.1.1.1.11.2000'})

2023-06-08 00:19:54:   snmp_query._query_worker: Attempting SNMP Query

2023-06-08 00:19:54:   snmp_query._query_worker: Attempting SNMP Query

2023-06-08 00:19:54:   snmp_query._query_worker: Attempting SNMP Query

Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/bin/ztp", line 787, in _query_worker
    response = self._get_oid(oid)
  File "/usr/bin/ztp", line 807, in _get_oid
    pysnmp.hlapi.ObjectType(pysnmp.hlapi.ObjectIdentity(oid)))
  File "/usr/local/lib/python2.7/dist-packages/pysnmp/hlapi/asyncore/sync/cmdgen.py", line 113, in getCmd
    snmpEngine.transportDispatcher.runDispatcher()
  File "/usr/local/lib/python2.7/dist-packages/pysnmp/carrier/asyncore/dispatch.py", line 50, in runDispatcher
    raise PySnmpError('poll error: %s' % ';'.join(format_exception(*exc_info())))
PySnmpError: poll error: Traceback (most recent call last):
;  File "/usr/local/lib/python2.7/dist-packages/pysnmp/carrier/asyncore/dispatch.py", line 46, in runDispatcher
    use_poll=True, map=self.__sockMap, count=1)
;  File "/usr/lib/python2.7/asyncore.py", line 220, in loop
    poll_fun(timeout, map)
;  File "/usr/lib/python2.7/asyncore.py", line 201, in poll2
    readwrite(obj, flags)
;  File "/usr/lib/python2.7/asyncore.py", line 123, in readwrite
    obj.handle_error()
;  File "/usr/lib/python2.7/asyncore.py", line 108, in readwrite
    obj.handle_read_event()
;  File "/usr/lib/python2.7/asyncore.py", line 449, in handle_read_event
    self.handle_read()
;  File "/usr/local/lib/python2.7/dist-packages/pysnmp/carrier/asyncore/dgram/base.py", line 170, in handle_read
    self._cbFun(self, transportAddress, incomingMessage)
;  File "/usr/local/lib/python2.7/dist-packages/pysnmp/carrier/base.py", line 85, in _cbFun
    self, transportDomain, transportAddress, incomingMessage
;  File "/usr/local/lib/python2.7/dist-packages/pysnmp/entity/engine.py", line 152, in __receiveMessageCbFun
    self, transportDomain, transportAddress, wholeMsg
;  File "/usr/local/lib/python2.7/dist-packages/pysnmp/proto/rfc3412.py", line 291, in receiveMessage
    msgVersion = verdec.decodeMessageVersion(wholeMsg)
;  File "/usr/local/lib/python2.7/dist-packages/pysnmp/proto/api/verdec.py", line 17, in decodeMessageVersion
    recursiveFlag=False, substrateFun=lambda a, b, c: (a, b[:c])
;  File "/usr/local/lib/python2.7/dist-packages/pyasn1/codec/ber/decoder.py", line 2003, in __call__
    for asn1Object in streamingDecoder:
;  File "/usr/local/lib/python2.7/dist-packages/pyasn1/codec/ber/decoder.py", line 1919, in __iter__
    self._substrate, self._asn1Spec, **self._options):
;  File "/usr/local/lib/python2.7/dist-packages/pyasn1/codec/ber/decoder.py", line 1781, in __call__
    self, substrateFun, **options):
;  File "/usr/local/lib/python2.7/dist-packages/pyasn1/codec/ber/decoder.py", line 654, in valueDecoder
    for chunk in substrateFun(asn1Object, substrate, length, options):
;TypeError: <lambda>() takes exactly 3 arguments (4 given)
caused by <type 'exceptions.TypeError'>: <lambda>() takes exactly 3 arguments (4 given)
@GSGBen
Copy link

GSGBen commented Jul 16, 2023

Thanks for the fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants