Uploaded image for project: 'OpenNMS'
  1. OpenNMS
  2. NMS-13795

Telemetryd error occurring when testing with hsflowd



    • Bug
    • Status: Resolved (View Workflow)
    • Minor
    • Resolution: Fixed
    • None
    • Meridian-2022.1.0, 29.0.7
    • Flows, Telemetry
    • Security Level: Default (Default Security Scheme)
    • None
    • Oaas Lite Minion running in Docker
    • Horizon 22 - Feb 2 - Feb 16, Horizon 22 - Feb 16 - Mar 2
    • Backlog
      • eliminate parsing errors for sflow


      When testing sending Flows traffic to a Minion running in Docker for our Oaas Lite environment, we are receiving an error regarding Telemetryd in the Minion Docker logs (seen in the standard out output when running the container).

      As background info:

      • A Virtual Machine (VM) has been setup running in Virtualbox on my local Mac laptop, with hsflowd installed and pointing to my local Mac IP address using port 50000 (UDP protocol).
      • The Minion is running a modified version of the Docker command provided by Oaas Lite when running an instance in Oaas Lite, that the web UI provides after creating an instance. An example of the command used is:
      docker run --rm -e MINION_LOCATION=test -e MINION_ID=test01 -e 'OPENNMS_BROKER_URL=failover:ssl://<URL>:61616' -e 'OPENNMS_HTTP_URL=<URL>' -e 'OPENNMS_HTTP_USER=minion' -e 'OPENNMS_HTTP_PASS=<PASSWORD>' -e 'OPENNMS_BROKER_USER=minion' -e 'OPENNMS_BROKER_PASS=<PASSWORD>' -p <MAC LAPTOP IP>:50000:50000/udp opennms/minion:bleeding -c

      An example of the error is:

      Exception in thread "Telemetryd-sFlow-Single-Port-Flow-Listener.SFlow-Thread-19" org.bson.BsonInvalidOperationException: writeInt64 can only be called when State is VALUE, not when State is NAME
      	at org.bson.AbstractBsonWriter.throwInvalidState(AbstractBsonWriter.java:742)
      	at org.bson.AbstractBsonWriter.checkPreconditions(AbstractBsonWriter.java:697)
      	at org.bson.AbstractBsonWriter.writeInt64(AbstractBsonWriter.java:444)
      	at org.opennms.netmgt.telemetry.protocols.sflow.parser.proto.flows.HostAdapter.writeBson(HostAdapter.java:70)
      	at org.opennms.netmgt.telemetry.protocols.sflow.parser.proto.flows.HostAdapters.writeBson(HostAdapters.java:65)
      	at org.opennms.netmgt.telemetry.protocols.sflow.parser.proto.flows.CounterRecord.writeBson(CounterRecord.java:98)
      	at org.opennms.netmgt.telemetry.protocols.sflow.parser.proto.flows.CountersSample.writeBson(CountersSample.java:90)
      	at org.opennms.netmgt.telemetry.protocols.sflow.parser.proto.flows.SampleRecord.writeBson(SampleRecord.java:69)
      	at org.opennms.netmgt.telemetry.protocols.sflow.parser.proto.flows.SampleDatagramV5.writeBson(SampleDatagramV5.java:107)
      	at org.opennms.netmgt.telemetry.protocols.sflow.parser.SFlowUdpParser.lambda$parse$1(SFlowUdpParser.java:140)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at org.opennms.netmgt.telemetry.protocols.sflow.parser.SFlowUdpParser$1.lambda$newThread$0(SFlowUdpParser.java:95)
      	at org.opennms.core.concurrent.LogPreservingThreadFactory$1.run(LogPreservingThreadFactory.java:88)
      	at java.base/java.lang.Thread.run(Thread.java:829)

      Also, I have attached a tcpdump pcap file with the logs for port 50000 for reference. The error above is shown sporadically every few minutes and does not seem to correlate to the traffic from what I observed thus far.


        Issue Links



              cpape Christian Pape
              bborovan Brent Borovan
              0 Vote for this issue
              3 Start watching this issue