Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-25609

sysUpTime field is populated with invalid value during SNMP trap creation

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.7.5
    • Fix Version/s: 2.7.6
    • Component/s: ambari-server
    • Labels:
      None

      Description

      Ambari tries to set milliseconds to the "sysUpTime" field:
      https://github.com/apache/ambari/blob/8e35277c24cc0ffd897c1dc727b2cc528cb8148b/ambari-server/src/main/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcher.java#L120

      but this field accepts hundreds of milliseconds:

      The time (in hundredths of a second) since the network
                  management portion of the system was last re-initialized.
      

      (https://tools.ietf.org/html/rfc1907#section-2.1)

      So after about 50-days in up-time an ambari server is not able to populate "sysUpTime" with a correct value (the max value the field is able to accept is "4294967295" - it is about 50 days in milliseconds).
      Exception in ambari-server.log:

      java.lang.IllegalArgumentException: Argument must be an unsigned 32bit value
      	at org.snmp4j.smi.UnsignedInteger32.setValue(UnsignedInteger32.java:144)
      	at org.snmp4j.smi.UnsignedInteger32.<init>(UnsignedInteger32.java:53)
      	at org.snmp4j.smi.TimeTicks.<init>(TimeTicks.java:58)
      	at org.apache.ambari.server.notifications.dispatchers.AmbariSNMPDispatcher.prepareTrap(AmbariSNMPDispatcher.java:120)
      	at org.apache.ambari.server.notifications.dispatchers.SNMPDispatcher.sendTraps(SNMPDispatcher.java:244)
      	at org.apache.ambari.server.notifications.dispatchers.SNMPDispatcher.dispatch(SNMPDispatcher.java:157)
      	at org.apache.ambari.server.notifications.DispatchRunnable.run(DispatchRunnable.java:58)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                dvitiiuk Dmytro Vitiuk
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m