SNMP 代理在单元测试期间断开连接
SNMP Agent Disconnects During Unit-test
我已经为我的 SNMPv3 子代理创建了一个单元测试,我似乎 运行 遇到了问题。当它工作时,它工作得很好。但是,每隔几次我 运行 单元测试主节点就会断开子代理会话。另外,我绝对不想使用 SNMP,但这是一个要求。
我正在 运行使用 net-snmp 5.7.3 宁 Fedora 28
这里是单元测试的描述:
- 启动 SNMPv3 子代理(每次都有效)
- 创建客户端会话并连接到本地主机上的 SNMP 主机
- 为子代理注册的每个 OID 设置整数或字符串值
(这里通常会失败)
- 获取子代理注册的每个 OID 的整数或字符串值,并且
EXPECT_TRUE(值== TEST_VALUE)
我看到以下行为:
- 一切正常
- 客户端有时会在 GET 或 SET 上永远挂起
- 只是这个错误:"AgentX master disconnected us, reconnecting in 15"
- 这两条错误消息:
"AgentX master disconnected us, reconnecting in 15"
"transport->sock got negative fd value -1"
- 这三个消息:"received broken packet. closing session"
"AgentX master disconnected us, reconnecting in 15""AgentX master disconnected us, reconnecting in 15"
在查看 net-snmp 源代码后,我能说的最好的是有时数据包由于某种原因格式不正确,但我认为这并不能涵盖我遇到的所有不同问题。
我还有一个 C# SNMP 客户端,它从未 运行 解决任何这些问题,所以我看不出它与服务器有何关系。
对于可能 运行 遇到此问题的任何人:
解决方法很简单,就是运行将subagent和client分在不同的进程中。我在同一个 googletest 进程中 运行ning 子代理和客户端,这引起了很多冲突。我想我应该意识到使用像 net-snmp 这样的库这样做是不安全的。
我已经为我的 SNMPv3 子代理创建了一个单元测试,我似乎 运行 遇到了问题。当它工作时,它工作得很好。但是,每隔几次我 运行 单元测试主节点就会断开子代理会话。另外,我绝对不想使用 SNMP,但这是一个要求。
我正在 运行使用 net-snmp 5.7.3 宁 Fedora 28
这里是单元测试的描述:
- 启动 SNMPv3 子代理(每次都有效)
- 创建客户端会话并连接到本地主机上的 SNMP 主机
- 为子代理注册的每个 OID 设置整数或字符串值 (这里通常会失败)
- 获取子代理注册的每个 OID 的整数或字符串值,并且 EXPECT_TRUE(值== TEST_VALUE)
我看到以下行为:
- 一切正常
- 客户端有时会在 GET 或 SET 上永远挂起
- 只是这个错误:"AgentX master disconnected us, reconnecting in 15"
- 这两条错误消息: "AgentX master disconnected us, reconnecting in 15" "transport->sock got negative fd value -1"
- 这三个消息:"received broken packet. closing session" "AgentX master disconnected us, reconnecting in 15""AgentX master disconnected us, reconnecting in 15"
在查看 net-snmp 源代码后,我能说的最好的是有时数据包由于某种原因格式不正确,但我认为这并不能涵盖我遇到的所有不同问题。
我还有一个 C# SNMP 客户端,它从未 运行 解决任何这些问题,所以我看不出它与服务器有何关系。
对于可能 运行 遇到此问题的任何人:
解决方法很简单,就是运行将subagent和client分在不同的进程中。我在同一个 googletest 进程中 运行ning 子代理和客户端,这引起了很多冲突。我想我应该意识到使用像 net-snmp 这样的库这样做是不安全的。