0

我希望有人可以帮助...

所以......我正在编写一个multiprocessing基于python的netsnmp轮询器(我在收集数据后做了很多数据结构操作,所以开销比正常情况下值得threading)。我找不到完整的 python 接口(具有不错的 OID 操作、bulkwalk 等),所以我决定纠正我自己的ctypes绑定。我snmp_sess_synch_response()用来实际执行查询。

当我运行单个线程时,一切正常(我可以查询并获取结果)。但是当我从继承的Process实例中调用我的(python)netsnmp 类时;当它到达时snmp_sess_synch_response(),线程停止,然后返回返回码“2”并snmp_errstring()返回“未知错误”。

我能找到的唯一信息是我应该使用来自http://net-snmp.sourceforge.net/docs/README.thread.html的单一 API,并且初始 MIB 构建应该在线程之前。我正在使用单一 API,并且在生成我的工人之前我正在构建 MIB。

有谁知道我应该如何进行调试?ctypes如何处理多线程?为什么使用multiprocessing会导致我工作的单线程轮询器像这样停止?

我在 redhat 6 64 位和 python 2.6.6 上使用 net-snmp 5.5-41.el6。

4

1 回答 1

0

事实证明这是一个没有关闭我的文件句柄的问题,所以过了一会儿,线程耗尽了它的所有句柄并提示抛出了一堆错误的错误。

于 2012-10-27T07:43:15.440 回答