Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-2812

Epoll proactor blocks thread during DNS lookups in getaddrinfo

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • proton-c-0.39.0
    • None
    • proton-c
    • None

    Description

      The epoll proactor uses getaddrinfo() to resolve network addresses for inbound and outbound AMQP and raw connections.  These connect and listener calls are thread safe so may be called from any thread and the expectation is that they initiate the action without blocking.

      Solutions could entail:

      1) using a dedicated DNS thread pool that multiplexes N serialized (blocking) getaddrinfo calls over the pool (e.g. getaddrinfo_a or self managed like libuv)

      2) use some custom library that scales DNS requests without blocking

      3) write the simplest custom proactor library that does #2.

      Attachments

        1. mitigate01.diff
          10 kB
          Clifford Jansen

        Activity

          People

            cliffjansen Clifford Jansen
            cliffjansen Clifford Jansen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: