Uploaded image for project: 'genius'
  1. genius
  2. GENIUS-17

Packet IN handler thread in deadlock after high ARP rate

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • (unspecified)
    • None
    • General
    • None
    • Operating System: All
      Platform: All

    • 6626

    Description

      Due to high ARP rate the notification queue fills up quickly.
      ArpUtilService gets stuck on the blocking method putNotification() forever

      Thread dump:
      "pool-15-thread-1" #185 prio=5 os_prio=0 tid=0x00000000013ef800 nid=0x3057 runnable [0x00007f92a857d000]
      java.lang.Thread.State: TIMED_WAITING (parking)
      at sun.misc.Unsafe.park(Native Method)
      at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:338)
      at com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:136)
      at com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:105)
      at com.lmax.disruptor.RingBuffer.next(RingBuffer.java:253)
      at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter.putNotification(DOMNotificationRouter.java:202)
      at Proxya20eb9ef_033e_4602_ba27_a76d4290fa59.putNotification(Unknown Source)
      at org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter.putNotification(BindingDOMNotificationPublishServiceAdapter.java:51)
      at org.opendaylight.genius.arputil.internal.ArpUtilImpl.fireArpReqRecvdNotification(ArpUtilImpl.java:620)
      at org.opendaylight.genius.arputil.internal.ArpUtilImpl.onPacketReceived(ArpUtilImpl.java:501)
      at java.lang.invoke.LambdaForm$DMH/266922253.invokeInterface_LL_V(LambdaForm$DMH)
      at java.lang.invoke.LambdaForm$BMH/1678808217.reinvoke(LambdaForm$BMH)
      at java.lang.invoke.LambdaForm$MH/732849773.invokeExact_MT(LambdaForm$MH)
      at org.opendaylight.yangtools.yang.binding.util.NotificationListenerInvoker.invokeNotification(NotificationListenerInvoker.java:91)
      at org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter.onNotification(BindingDOMNotificationListenerAdapter.java:44)
      at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouterEvent.deliverNotification(DOMNotificationRouterEvent.java:56)
      at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:68)
      at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:65)
      at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:129)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)

      Need to consider using offerNotification rather than putNotification which is time-bounded or separate to other thread

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              shlomi.alfasi@contextream.com Shlomi Alfasi
              tali@hpe.com Tali Ben-Meir
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: