【问题标题】:SNMP Agent Disconnects During Unit-testSNMP 代理在单元测试期间断开连接
【发布时间】:2018-08-13 12:01:01
【问题描述】:

我为我的 SNMPv3 子代理创建了一个单元测试,但我似乎遇到了问题。当它工作时,它工作得很好。但是,每隔几次我运行单元测试,主服务器就会断开子代理会话。另外,我绝对不希望使用 SNMP,但这是必需的。

我正在使用 net-snmp 5.7.3 运行 Fedora 28

这里是单元测试的描述:

  1. 启动 SNMPv3 子代理(每次都有效)
  2. 创建客户端会话并连接到本地主机上的 SNMP 主机
  3. 为子代理注册的每个 OID 设置整数或字符串值 (通常在这里失败)
  4. 获取子代理注册的每个 OID 的整数或字符串值,并 EXPECT_TRUE(value == TEST_VALUE)

我看到以下行为:

  1. 一切正常
  2. 客户端有时在 GET 或 SET 上永远挂起
  3. 就是这个错误:“AgentX master 断开了我们的连接,在 15 后重新连接”
  4. 这两个错误消息: “AgentX 主机断开了我们的连接,15 分钟后重新连接” "transport->sock 的 fd 值为负 -1"
  5. 这三个消息:“收到损坏的数据包。关闭会话” “AgentX 主机断开了我们的连接,在 15 内重新连接” “AgentX 主机断开了我们的连接,在 15 内重新连接”

查看 net-snmp 源代码后,我能说的最好的结果是,有时数据包由于某种原因格式不正确,但我认为这并不是我遇到的所有不同问题。

我还有一个 C# SNMP 客户端,它从未遇到任何这些问题,所以我看不出它与服务器的关系。

【问题讨论】:

    标签: c++ snmp googletest net-snmp


    【解决方案1】:

    对于任何可能遇到此问题的人:

    解决方案只是在不同的进程中运行子代理和客户端。我在同一个 googletest 进程中运行子代理和客户端,它引起了很多冲突。我想我应该意识到使用像 net-snmp 这样的库这样做是不安全的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      相关资源
      最近更新 更多