Uploaded image for project: 'AMQ Clients'
  1. AMQ Clients
  2. ENTMQCL-248

[proton-c] BlockingConnection spins at 100% CPU on reconnect

XMLWordPrintable

    • Release Notes
    • Hide
      The reading half of the pipe used to wake up from polling is closed when the timer is finalized. However an attempt is then made to close it once more when the reactor itself is finalized. If you create a new reactor, as Blocking Connection does, the new reactor (or its timer) may reuse a file descriptor previously associated with the read half of the pipe from the old timer. Consequently, the second close attempt on the read pipe closes a file descriptor that is now associated with some other context. This results in the reconnect spinning endlessly.

      This release includes an update that ensures the pipe is fully closed on finalizing the timer and the file descriptors are set to invalid to prevent an attempt to reclose them. Now, reconnecting with `BlockingConnection` works correctly and does not spin endlessly.
      Show
      The reading half of the pipe used to wake up from polling is closed when the timer is finalized. However an attempt is then made to close it once more when the reactor itself is finalized. If you create a new reactor, as Blocking Connection does, the new reactor (or its timer) may reuse a file descriptor previously associated with the read half of the pipe from the old timer. Consequently, the second close attempt on the read pipe closes a file descriptor that is now associated with some other context. This results in the reconnect spinning endlessly. This release includes an update that ensures the pipe is fully closed on finalizing the timer and the file descriptors are set to invalid to prevent an attempt to reclose them. Now, reconnecting with `BlockingConnection` works correctly and does not spin endlessly.
    • Documented as Resolved Issue

          gordonsim Gordon Sim
          jross@redhat.com Justin Ross
          Radim Kubis Radim Kubis
          Votes:
          0 Vote for this issue
          Watchers:
          2 Start watching this issue

            Created:
            Updated:
            Resolved: