| Summary: | net-analyzer/net-snmp-5.4.1 (and 5.4.2.1): Infinite retry loop when agent replies with invalid error-index on non-set request | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Doug <doug.manley> |
| Component: | [OLD] Library | Assignee: | Gentoo Netmon project <netmon> |
| Status: | RESOLVED TEST-REQUEST | ||
| Severity: | normal | ||
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| URL: | http://sourceforge.net/tracker/index.php?func=detail&aid=2538183&group_id=12694&atid=312694 | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | The patch for the problem | ||
|
Description
Doug
2009-01-27 16:53:28 UTC
Created attachment 179891 [details, diff]
The patch for the problem
This patch is exactly the same for 5.4.1.
Note: the directory applies to: snmplib
Doug, thank you for report. But I can't reproduce your problem with 5.4.2.1: camobap-unstable log # snmpget -v1 -ctest 127.0.0.1 ifName.4 IF-MIB::ifName.4 = STRING: irlan0 camobap-unstable log # snmpget -v1 -ctest 127.0.0.1 ifName.5 Error in packet Reason: (noSuchName) There is no such variable name in this MIB. Failed object: IF-MIB::ifName.5 So agent just reports error as it should... What do I miss? (In reply to comment #2) > Doug, thank you for report. But I can't reproduce your problem with 5.4.2.1: > > camobap-unstable log # snmpget -v1 -ctest 127.0.0.1 ifName.4 > IF-MIB::ifName.4 = STRING: irlan0 > camobap-unstable log # snmpget -v1 -ctest 127.0.0.1 ifName.5 > Error in packet > Reason: (noSuchName) There is no such variable name in this MIB. > Failed object: IF-MIB::ifName.5 > > So agent just reports error as it should... What do I miss? > Thank you for your interest; your test is good... HOWEVER, you will need a *buggy* client that returns an error-index of "2" instead of "1". You can hack net-snmp (on another box) to do this if you need to test. (In reply to comment #3) > HOWEVER, you will need a *buggy* client that returns an error-index of "2" > instead of "1". You can hack net-snmp (on another box) to do this if you need > to test. I' lost. In comment #0 you wrote ''the agent is improperly returning "2".'' which has reverse sense. Could you explain another time what issue is and how to trigger it? The more details the better since I really don't understand what this issue affects. (In reply to comment #4) > (In reply to comment #3) > > HOWEVER, you will need a *buggy* client that returns an error-index of "2" > > instead of "1". You can hack net-snmp (on another box) to do this if you need > > to test. > > I' lost. In comment #0 you wrote ''the agent is improperly returning "2".'' > which has reverse sense. Could you explain another time what issue is and how > to trigger it? The more details the better since I really don't understand what > this issue affects. > Ah, I see your source of confusion. The net-snmp *agent* works perfectly fine. However, the net-snmp *client* has issues when *another* agent returns improper "error-index" values. So, your first step is to hunt down a buggy agent that will lie to you about its "error-index" value. I have found SysEDGE agents to do this on some versions (I can't name any at this time--they are at a customer location). Or, you can hack a net-snmp agent to return an incorrect error-index. Then, using the net-snmp client (in testing), you can try to ask for something that doesn't exist; you'll get an error-number of "2" (noSuchName), and then an error-index of say, "2" or "3" or "4". If that error-index is not "1", then the net-snmp client will enter into an infinite retransmit loop that is not so pretty. Can you please test with 5.7.2_rc3 and reopen if it's still an issue? |