storage leak in NetSNMP?

Hi, I have a small script that computes a list of network devices, directs an SNMP query at each of them, computes a report from the result of that query and prints that. I would expect that to run in constant space but instead memory usage keeps going up until the script is killed by the OOM killer. Is it possible that the NetSNMP library is keeping hold of all the results of its session? Here's part of my code: analyzeSNMP :: Line -> IO() analyzeSNMP x = do snmp <- getSNMP x putStrLn $ getNetworks (x, snmp) getSNMP :: Line -> IO (Either String [SnmpResult]) getSNMP line = snmpWalk snmp_version_2c (encodeUtf8 (primaryRouterLoopback line)) (DBC.pack "XXX") mib2 getNetworks :: (Line, Either String [SnmpResult]) -> String main = do initialize args <- arguments wans <- case wanInventoryFileName args of Just s -> parseWANInventory s Nothing -> return DefaultWAN.wans let lines = makeLines (tail wans) mapM_ analyzeSNMP lines
participants (1)
-
Lieven Marchand