Problems with multi-threading and SNMP walk requests

Diego Billi <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
I want to create a thread which performs an SNMP walk, but the main thread
blocks on the pending request too.

I attach the source code of the test i wrote.

The main thread prints on standard output every second.
A second thread performs a walk.
The main threads blocks until the snmp walk is finished

Is it a bug?

How can avoid this problem? Is this a problem of the python bindings or 
what else?

Thank you very much.


TRY
===

$ python netsnmp_thread.py    <your host>    1.3.6.1.2.1.1.1



SOURCE CODE
==========


import time,sys
import netsnmp
import threading


if len(sys.argv) != 3:
    print "Usage: python %s <host> <oid>" % (sys.argv[0])
    sys.exit(-1)
   
host = sys.argv[1]
   
oid_table  = sys.argv[2]

TIMEOUT=1000000
RETRIES=10


class TestThread(threading.Thread):
   
    def __init__(self, oid):
        super(TestThread, self).__init__()   
        self.oid = oid
       
    def run(self):
        print "THREAD: start"
       
        start = time.time()
        var = netsnmp.Varbind( '.' + self.oid )
        varlist = netsnmp.VarList( var )
        t = netsnmp.snmpwalk( varlist , Version=1, DestHost=host,
                              Community='public', 
Version=2,                                   
                              UseNumeric=1,
                              Timeout=TIMEOUT, Retries=RETRIES)
       
        end = time.time()
       
        print "THREAD: request time %s" % (end-start)
        if t != None:
            for a in varlist:
                print '%s.%s = %s (%s, %s)' % (a.tag, str(a.iid), 
str(a.val), str(a.type), type(a.val))
            else:
                print "no result"
    print "THREAD: finish!"


t = TestThread(oid_table)

last = time.time()
print "main thread..."

t.start()

while True:
    now = time.time()
    print "main thread going idle...elapsed=%s" % (now-last)
    last = now
    time.sleep(1.0)


------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.