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

pysnmp seems stuck intermittently #432

Open
adarsh-chauhan opened this issue Dec 12, 2022 · 3 comments
Open

pysnmp seems stuck intermittently #432

adarsh-chauhan opened this issue Dec 12, 2022 · 3 comments

Comments

@adarsh-chauhan
Copy link

adarsh-chauhan commented Dec 12, 2022

Hi Team,

We are using pysnmp version 4.4.9 library in AWS Lambda and it seems pysnmp to be stuck at times.

In our config we are doing 1 second of timeout with 1 retry, total 2 seconds for unresponsive devices.

We use bulkcmd and getCmd .

getCmd snippet

iterator = getCmd(
    snmpEngine,
    CommunityData(communityString),
    UdpTransportTarget((ipaddress, connectPort), timeout=1, retries=1),
    ContextData(),
    ObjectType(ObjectIdentity(oid)),
    lookupMib=False,
    lexicographicMode=False
)


errorIndication, errorStatus, errorIndex, varBinds = next(iterator)

bulkCmd snippet

for loop_iteration in range(loop_count):
    try:
        for errorIndication, errorStatus, errorIndex, var_bind_table in bulkCmd(
            snmpEngine,
            CommunityData(self.community_string),
            UdpTransportTarget((self.ip, self.port), timeout=1, retries=1),
            ContextData(),
            0, self.get_per_bulk,
            *varBinds,
            lexicographicMode=True,
            maxRows=25):

            if errorIndication:
                break

            varBindTable.append(var_bind_table)

2022-12-11T20:39:50.842-08:00	{"message": "Polling", "level": "INFO", "time": "2022-12-12T04:39:50.842Z", "epoch_time": 1670819990.8424284, "event_id": 343998, "event_source": "FnSQSPollCycle-SCRATCH", "event_source_version": "$LATEST", "target": "10.200.209.190", "oid": "1.3.6.1.2.1.1.5.0", "connecPort": 161, "connectTimeout": 1, "connectRetries": 3}

2022-12-11T20:39:51.035-08:00	2022-12-12 04:39:51,035 pysnmp: sendPdu: securityName s-2096821611997711961, PDU

2022-12-11T20:39:51.035-08:00	GetRequestPDU:

2022-12-11T20:39:51.035-08:00	request-id=13925871

2022-12-11T20:39:51.035-08:00	error-status=noError

2022-12-11T20:39:51.035-08:00	error-index=0

2022-12-11T20:39:51.035-08:00	variable-bindings=VarBindList:

2022-12-11T20:39:51.035-08:00	VarBind:

2022-12-11T20:39:51.035-08:00	name=1.3.6.1.2.1.1.5.0

2022-12-11T20:39:51.035-08:00	=_BindValue:

2022-12-11T20:39:51.035-08:00	unSpecified=

2022-12-11T20:39:51.035-08:00	[DEBUG] 2022-12-12T04:39:51.035Z e8fa3887-4278-5699-a258-6497f0c239cc sendPdu: securityName s-2096821611997711961, PDU GetRequestPDU: request-id=13925871 error-status=noError error-index=0 variable-bindings=VarBindList: VarBind: name=1.3.6.1.2.1.1.5.0 =_BindValue: unSpecified=

2022-12-11T20:39:51.036-08:00	2022-12-12 04:39:51,035 pysnmp: sendPdu: current time 0 ticks, one tick is 0.5 seconds

2022-12-11T20:39:51.036-08:00	[DEBUG] 2022-12-12T04:39:51.035Z e8fa3887-4278-5699-a258-6497f0c239cc sendPdu: current time 0 ticks, one tick is 0.5 seconds

2022-12-11T20:39:51.036-08:00	2022-12-12 04:39:51,036 pysnmp: sendPdu: new sendPduHandle 9010858, timeout 2.0 ticks, cbFun <bound method CommandGenerator.processResponsePdu of <pysnmp.entity.rfc3413.cmdgen.GetCommandGenerator object at 0x7faf010e2250>>

2022-12-11T20:39:51.036-08:00	[DEBUG] 2022-12-12T04:39:51.036Z e8fa3887-4278-5699-a258-6497f0c239cc sendPdu: new sendPduHandle 9010858, timeout 2.0 ticks, cbFun <bound method CommandGenerator.processResponsePdu of <pysnmp.entity.rfc3413.cmdgen.GetCommandGenerator object at 0x7faf010e2250>>

2022-12-11T20:39:51.036-08:00	2022-12-12 04:39:51,036 pysnmp: prepareOutgoingMessage: PDU request-id 13925871 replaced with unique ID 6342076

2022-12-11T20:39:51.036-08:00	[DEBUG] 2022-12-12T04:39:51.036Z e8fa3887-4278-5699-a258-6497f0c239cc prepareOutgoingMessage: PDU request-id 13925871 replaced with unique ID 6342076

2022-12-11T20:39:51.036-08:00	2022-12-12 04:39:51,036 pysnmp: prepareOutgoingMessage: using contextEngineId <SnmpEngineID value object at 0x7faf00d7b100 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175db50 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9d0 consts 5, 32>> encoding iso-8859-1 payload [0x80004fb8053136...2e313235000ec3c0]> contextName b''

2022-12-11T20:39:51.036-08:00	[DEBUG] 2022-12-12T04:39:51.036Z e8fa3887-4278-5699-a258-6497f0c239cc prepareOutgoingMessage: using contextEngineId <SnmpEngineID value object at 0x7faf00d7b100 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175db50 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9d0 consts 5, 32>> encoding iso-8859-1 payload [0x80004fb8053136...2e313235000ec3c0]> contextName b''

2022-12-11T20:39:51.036-08:00	2022-12-12 04:39:51,036 pysnmp: _sec2com: built securityName to communityName map, version 4: {(<SnmpAdminString value object at 0x7faf0132ffd0 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf01a47ac0 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9a0 consts 0, 255>, <ValueSizeConstraint object at 0x7faf01a47bb0 consts 1, 32>> encoding utf-8 payload [s-2096821611997711961]>, <SnmpEngineID value object at 0x7faf0132f100 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175db50 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9d0 consts 5, 32>> encoding iso-8859-1 payload [0x80004fb8053136...2e313235000ec3c0]>, <SnmpAdminString value object at 0x7faf0132f280 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf01a478e0 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9a0 consts 0, 255>, <ValueSizeConstraint object at 0x7faf01a479d0 consts 0, 32>> encoding utf-8 payload []>): <OctetString value object at 0x7faf0162b9a0 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf068077c0 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>> encoding iso-8859-1 payload [public]>}

2022-12-11T20:39:51.036-08:00	[DEBUG] 2022-12-12T04:39:51.036Z e8fa3887-4278-5699-a258-6497f0c239cc _sec2com: built securityName to communityName map, version 4: {(<SnmpAdminString value object at 0x7faf0132ffd0 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf01a47ac0 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9a0 consts 0, 255>, <ValueSizeConstraint object at 0x7faf01a47bb0 consts 1, 32>> encoding utf-8 payload [s-2096821611997711961]>, <SnmpEngineID value object at 0x7faf0132f100 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175db50 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9d0 consts 5, 32>> encoding iso-8859-1 payload [0x80004fb8053136...2e313235000ec3c0]>, <SnmpAdminString value object at 0x7faf0132f280 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf01a478e0 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9a0 consts 0, 255>, <ValueSizeConstraint object at 0x7faf01a479d0 consts 0, 32>> encoding utf-8 payload []>): <OctetString value object at 0x7faf0162b9a0 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf068077c0 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>> encoding iso-8859-1 payload [public]>}

2022-12-11T20:39:51.037-08:00	2022-12-12 04:39:51,037 pysnmp: generateRequestMsg: using community <OctetString value object at 0x7faf0162b9a0 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf068077c0 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>> encoding iso-8859-1 payload [public]> for securityModel <SnmpSecurityModel value object at 0x7faf01b88c40 tagSet <TagSet object at 0x7faf06807070 tags 0:0:2> subtypeSpec <ConstraintsIntersection object at 0x7faf0175e5e0 consts <ValueRangeConstraint object at 0x7faf083145b0 consts -2147483648, 2147483647>, <ValueRangeConstraint object at 0x7faf0175dc70 consts 0, 2147483647>, <ValueRangeConstraint object at 0x7faf0175e5b0 consts 1, 2147483647>> payload [2]>, securityName <SnmpAdminString value object at 0x7faf01b88dc0 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175da60 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9a0 consts 0, 255>> encoding utf-8 payload [s-2096821611997711961]>, contextEngineId <SnmpEngineID value object at 0x7faf00d7b100 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175db50 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9d0 consts 5, 32>> encoding iso-8859-1 payload [0x80004fb8053136...2e313235000ec3c0]> contextName b''

2022-12-11T20:39:51.037-08:00	[DEBUG] 2022-12-12T04:39:51.037Z e8fa3887-4278-5699-a258-6497f0c239cc generateRequestMsg: using community <OctetString value object at 0x7faf0162b9a0 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf068077c0 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>> encoding iso-8859-1 payload [public]> for securityModel <SnmpSecurityModel value object at 0x7faf01b88c40 tagSet <TagSet object at 0x7faf06807070 tags 0:0:2> subtypeSpec <ConstraintsIntersection object at 0x7faf0175e5e0 consts <ValueRangeConstraint object at 0x7faf083145b0 consts -2147483648, 2147483647>, <ValueRangeConstraint object at 0x7faf0175dc70 consts 0, 2147483647>, <ValueRangeConstraint object at 0x7faf0175e5b0 consts 1, 2147483647>> payload [2]>, securityName <SnmpAdminString value object at 0x7faf01b88dc0 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175da60 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9a0 consts 0, 255>> encoding utf-8 payload [s-2096821611997711961]>, contextEngineId <SnmpEngineID value object at 0x7faf00d7b100 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175db50 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9d0 consts 5, 32>> encoding iso-8859-1 payload [0x80004fb8053136...2e313235000ec3c0]> contextName b''

2022-12-11T20:39:51.037-08:00	2022-12-12 04:39:51,037 pysnmp: generateRequestMsg: Message:

2022-12-11T20:39:51.037-08:00	version=1

2022-12-11T20:39:51.037-08:00	community=public

2022-12-11T20:39:51.037-08:00	data=PDUs:

2022-12-11T20:39:51.037-08:00	get-request=GetRequestPDU:

2022-12-11T20:39:51.037-08:00	request-id=6342076

2022-12-11T20:39:51.037-08:00	error-status=noError

2022-12-11T20:39:51.037-08:00	error-index=0

2022-12-11T20:39:51.037-08:00	variable-bindings=VarBindList:

2022-12-11T20:39:51.037-08:00	VarBind:

2022-12-11T20:39:51.037-08:00	name=1.3.6.1.2.1.1.5.0

2022-12-11T20:39:51.037-08:00	=_BindValue:

2022-12-11T20:39:51.037-08:00	unSpecified=

2022-12-11T20:39:51.037-08:00	[DEBUG] 2022-12-12T04:39:51.037Z e8fa3887-4278-5699-a258-6497f0c239cc generateRequestMsg: Message: version=1 community=public data=PDUs: get-request=GetRequestPDU: request-id=6342076 error-status=noError error-index=0 variable-bindings=VarBindList: VarBind: name=1.3.6.1.2.1.1.5.0 =_BindValue: unSpecified=

2022-12-11T20:39:51.037-08:00	2022-12-12 04:39:51,037 pysnmp: sendPdu: MP succeeded

2022-12-11T20:39:51.037-08:00	[DEBUG] 2022-12-12T04:39:51.037Z e8fa3887-4278-5699-a258-6497f0c239cc sendPdu: MP succeeded

2022-12-11T20:39:52.041-08:00	2022-12-12 04:39:52,040 pysnmp: __expireRequest: req cachedParams {'messageProcessingModel': <SnmpMessageProcessingModel value object at 0x7faf01b88a00 tagSet <TagSet object at 0x7faf06807070 tags 0:0:2> <REDACTED>}

2022-12-11T20:39:52.041-08:00	[DEBUG] 2022-12-12T04:39:52.040Z e8fa3887-4278-5699-a258-6497f0c239cc __expireRequest: req cachedParams {'messageProcessingModel': <SnmpMessageProcessingModel value object at 0x7faf01b88a00 tagSet <TagSet object at 0x7faf06807070 tags 0:0:2> subtypeSpec <ConstraintsIntersection object at 0x7faf0175de50 consts <ValueRangeConstraint object at 0x7faf083145b0 consts -2147483648, 2147483647>, <ValueRangeConstraint object at 0x7faf0175ddc0 consts 0, 2147483647>> payload [1]>, 'sendPduHandle': 9010858, 'timeout': 2.0, 'cbFun': <bound method CommandGenerator.processResponsePdu of <REDACTED>}

2022-12-11T20:39:52.041-08:00	2022-12-12 04:39:52,041 pysnmp: StatusInformation: {'errorIndication': RequestTimedOut('No SNMP response received before timeout')}

2022-12-11T20:39:52.041-08:00	[DEBUG] 2022-12-12T04:39:52.041Z e8fa3887-4278-5699-a258-6497f0c239cc StatusInformation: {'errorIndication': RequestTimedOut('No SNMP response received before timeout')}

2022-12-11T20:39:52.041-08:00	2022-12-12 04:39:52,041 pysnmp: sendPdu: securityName s-2096821611997711961, PDU

2022-12-11T20:39:52.041-08:00	GetRequestPDU:

2022-12-11T20:39:52.041-08:00	request-id=13925871

2022-12-11T20:39:52.041-08:00	error-status=noError

2022-12-11T20:39:52.041-08:00	error-index=0

2022-12-11T20:39:52.041-08:00	variable-bindings=VarBindList:

2022-12-11T20:39:52.041-08:00	VarBind:

2022-12-11T20:39:52.041-08:00	name=1.3.6.1.2.1.1.5.0

2022-12-11T20:39:52.041-08:00	=_BindValue:

2022-12-11T20:39:52.041-08:00	unSpecified=

2022-12-11T20:39:52.041-08:00	[DEBUG] 2022-12-12T04:39:52.041Z e8fa3887-4278-5699-a258-6497f0c239cc sendPdu: securityName s-2096821611997711961, PDU GetRequestPDU: request-id=13925871 error-status=noError error-index=0 variable-bindings=VarBindList: VarBind: name=1.3.6.1.2.1.1.5.0 =_BindValue: unSpecified=

2022-12-11T20:39:52.041-08:00	2022-12-12 04:39:52,041 pysnmp: sendPdu: current time 2 ticks, one tick is 0.5 seconds

2022-12-11T20:39:52.041-08:00	2022-12-12 04:39:52,041 pysnmp: sendPdu: new sendPduHandle 9010859, timeout 2.0 ticks, cbFun <bound method CommandGenerator.processResponsePdu of <pysnmp.entity.rfc3413.cmdgen.GetCommandGenerator object at 0x7faf010e2250>>

2022-12-11T20:39:52.041-08:00	[DEBUG] 2022-12-12T04:39:52.041Z e8fa3887-4278-5699-a258-6497f0c239cc sendPdu: current time 2 ticks, one tick is 0.5 seconds

2022-12-11T20:39:52.041-08:00	[DEBUG] 2022-12-12T04:39:52.041Z e8fa3887-4278-5699-a258-6497f0c239cc sendPdu: new sendPduHandle 9010859, timeout 2.0 ticks, cbFun <bound method CommandGenerator.processResponsePdu of <pysnmp.entity.rfc3413.cmdgen.GetCommandGenerator object at 0x7faf010e2250>>

2022-12-11T20:39:52.041-08:00	2022-12-12 04:39:52,041 pysnmp: prepareOutgoingMessage: PDU request-id 13925871 replaced with unique ID 6342077

2022-12-11T20:39:52.041-08:00	[DEBUG] 2022-12-12T04:39:52.041Z e8fa3887-4278-5699-a258-6497f0c239cc prepareOutgoingMessage: PDU request-id 13925871 replaced with unique ID 6342077

2022-12-11T20:39:52.041-08:00	2022-12-12 04:39:52,041 pysnmp: prepareOutgoingMessage: using contextEngineId <SnmpEngineID value object at 0x7faf00d7b100 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175db50 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9d0 consts 5, 32>> encoding iso-8859-1 payload [0x80004fb8053136...2e313235000ec3c0]> contextName b''

2022-12-11T20:39:52.041-08:00	[DEBUG] 2022-12-12T04:39:52.041Z e8fa3887-4278-5699-a258-6497f0c239cc prepareOutgoingMessage: using contextEngineId <SnmpEngineID value object at 0x7faf00d7b100 tagSet <TagSet object at 0x7faf06e90130 tags 0:0:4> subtypeSpec <ConstraintsIntersection object at 0x7faf0175db50 consts <ValueSizeConstraint object at 0x7faf06807c40 consts 0, 65535>, <ValueSizeConstraint object at 0x7faf0175d9d0 consts 5, 32>> encoding iso-8859-1 payload [0x80004fb8053136...2e313235000ec3c0]> contextName b''

2022-12-11T20:39:52.042-08:00	2022-12-12 04:39:52,042 pysnmp: generateRequestMsg: using community <REDACTED>''

2022-12-11T20:39:52.042-08:00	[DEBUG] 2022-12-12T04:39:52.042Z e8fa3887-4278-5699-a258-6497f0c239cc generateRequestMsg: using community <REDACTED>''

2022-12-11T20:39:52.042-08:00	2022-12-12 04:39:52,042 pysnmp: generateRequestMsg: Message:

2022-12-11T20:39:52.042-08:00	version=1

2022-12-11T20:39:52.042-08:00	community=public

2022-12-11T20:39:52.042-08:00	data=PDUs:

2022-12-11T20:39:52.042-08:00	get-request=GetRequestPDU:

2022-12-11T20:39:52.042-08:00	request-id=6342077

2022-12-11T20:39:52.042-08:00	error-status=noError

2022-12-11T20:39:52.042-08:00	error-index=0

2022-12-11T20:39:52.042-08:00	variable-bindings=VarBindList:

2022-12-11T20:39:52.042-08:00	VarBind:

2022-12-11T20:39:52.042-08:00	name=1.3.6.1.2.1.1.5.0

2022-12-11T20:39:52.042-08:00	=_BindValue:

2022-12-11T20:39:52.042-08:00	unSpecified=

2022-12-11T20:39:52.042-08:00	[DEBUG] 2022-12-12T04:39:52.042Z e8fa3887-4278-5699-a258-6497f0c239cc generateRequestMsg: Message: version=1 community=public data=PDUs: get-request=GetRequestPDU: request-id=6342077 error-status=noError error-index=0 variable-bindings=VarBindList: VarBind: name=1.3.6.1.2.1.1.5.0 =_BindValue: unSpecified=

2022-12-11T20:39:52.042-08:00	2022-12-12 04:39:52,042 pysnmp: sendPdu: MP succeeded

2022-12-11T20:39:52.042-08:00	[DEBUG] 2022-12-12T04:39:52.042Z e8fa3887-4278-5699-a258-6497f0c239cc sendPdu: MP succeeded

2022-12-11T20:39:55.044-08:00	2022-12-12T04:39:55.044Z e8fa3887-4278-5699-a258-6497f0c239cc Task timed out after 32.03 seconds

Last 3 lines, it seems that pysnmp was stuck.

can someone tell me what are we doing wrong or if this is actually an anamoly ?

@lextm
Copy link

lextm commented Jan 13, 2023

UDP isn't a reliable protocol, so when you sent out SNMP GET requests (like the log showed) you should expect a certain amount of requests to fail with timeout (request/response lost on the wire, or agent slowly responded). Actions are only required if you observe a significant amount of timeout cases.

Most likely the cause is on agent side (busy agent or busy machine), so only digging into manager side log as above won't give you the whole picture.

@adarsh-chauhan
Copy link
Author

adarsh-chauhan commented Jan 14, 2023

Hi Lex @lextm thanks for responding.
so my understanding is that timeout value passed should be respected and the control should be given back to the caller. That isnt happening and causing the code to be stuck.

@lextm
Copy link

lextm commented Jan 15, 2023

@adarsh-chauhan I wonder what you meant by "the control should be given back to the caller". A library like PySNMP has to respect the timeout you give or preset value, and actually wait that long for a response from the remote agent.

As the caller of PySNMP API, it will be your code to decide whether it will call and wait for PySNMP on the same thread, or call PySNMP asynchronously. Note that asynchronously calling a socket API (not only SNMP or PySNMP) is widely adopted. So, I don't think there is anything needed to change on PySNMP side.

I guess your concern is more related to specific applications, such as AWS Lambda, the throughput and the possibly cost increase. But that's another story about code optimization, not PySNMP's defect.

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