Bug 85071 - ipv6 net-snmp 5.0.x seems to leave descriptors behind
Summary: ipv6 net-snmp 5.0.x seems to leave descriptors behind
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Raw Hide
Classification: Retired
Component: net-snmp
Version: 1.0
Hardware: i686
OS: Linux
medium
high
Target Milestone: ---
Assignee: Phil Knirsch
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2003-02-25 10:56 UTC by Kaj J. Niemi
Modified: 2015-03-05 01:12 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2003-04-29 12:43:09 UTC
Embargoed:


Attachments (Terms of Use)
output of lsof -p on a snmpd (11.77 KB, text/plain)
2003-02-25 10:59 UTC, Kaj J. Niemi
no flags Details
Patch fixing missing close for IPV6IFADMSTATUS/IPV6IFOPERSTATUS. (378 bytes, patch)
2003-02-25 15:06 UTC, Kaj J. Niemi
no flags Details | Diff

Description Kaj J. Niemi 2003-02-25 10:56:28 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030221

Description of problem:
net-snmp 5.0.6/5.0.7 seems to leave sockets/descriptors behind. When it finally
dies the only thing that appears in /var/log/messages is:

Feb 25 06:43:34 ag01 snmpd[23039]: Connection from 10.0.0.82
Feb 25 06:44:23 ag01 last message repeated 4 times
Feb 25 06:44:23 ag01 last message repeated 4 times
Feb 25 06:44:23 ag01 snmpd[23039]: warning: cannot open /etc/hosts.allow: Too
many open files
Feb 25 06:44:23 ag01 snmpd[23039]: warning: cannot open /etc/hosts.deny: Too
many open files
Feb 25 06:44:23 ag01 snmpd[23039]: Connection from 10.0.0.82

I am able to reproduce this rather reliably on RH73, RH80, Phoebe 1/2/3 and Rawhide.

Attached is output of lsof -p process which doesn't really help but shows a
bunch of socks that aren't identifiable.

Any pointers on how to catch this?

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. Start snmpd
2. Issue queries (a lot of them)
3. Wait for snmpd to exit almost silently.
    

Actual Results:  snmpd exits after all descriptors are in use


Expected Results:  snmpd should not experience descriptor exhaustion.

Additional info:

Comment 1 Kaj J. Niemi 2003-02-25 10:59:43 UTC
Created attachment 90344 [details]
output of lsof -p on a snmpd

Comment 2 Kaj J. Niemi 2003-02-25 14:17:41 UTC
This bug is NOT reproduceable unless there the IPv6 stack is enabled (dual-stack
makes it reproduceable as well.)

Suppose pid 17703 is the 'snmpd' process and one monitors the descriptors with
lsof as follows:

% while (true) {
lsof -p 17703 | wc ; sleep 2
}

and one walks the IPv6 interfaces tree with

snmpwalk -O n -v 2c -c quux 10.0.0.82 .1.3.6.1.2.1.55.1.5.1

the socket count goes up (as witnessed by running lsof every two seconds.)
towards infinity until the open file descriptor limit is reached (at which point
snmpd dies.)




Comment 3 Kaj J. Niemi 2003-02-25 15:04:32 UTC
Simplest reproduceable case is the following (requesting
IPV6-MIB::ipv6IfAdminStatus) which leaves behind one new socket.

snmpget -O n -v 2c -c quux 10.0.0.82 .1.3.6.1.2.1.55.1.5.1.9.1

Patch follows. ;-)

Comment 4 Kaj J. Niemi 2003-02-25 15:06:15 UTC
Created attachment 90351 [details]
Patch fixing missing close for IPV6IFADMSTATUS/IPV6IFOPERSTATUS.

Seems to work.

Comment 5 Kaj J. Niemi 2003-02-25 15:07:50 UTC
This should probably be fixed upstream, too...

Comment 6 Kaj J. Niemi 2003-03-26 11:27:30 UTC
Not fixed in 5.0.8, patch still applies.

Comment 7 Phil Knirsch 2003-04-29 12:43:09 UTC
Package updated and patch included in latest rawhide version (to appear real soon).

Read ya, Phil

Comment 8 Michael J. Slifcak 2004-09-16 02:16:30 UTC
The patch is needed ONLY if using net-snmp-5.0.9 as a base.
The net-snmp-5.1.2 and later releases close the socket
   several lines earlier in the code fragment.
Please do not include net-snmp-5.0.8-ipv6-sock-close.patch
in upcoming source packages that are based on net-snmp-5.1.2.


Note You need to log in before you can comment on or make changes to this bug.