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

Epoll proactor blocks thread during DNS lookups in getaddrinfo

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    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

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            cliffjansen Clifford Jansen
            cliffjansen Clifford Jansen

            Dates

              Created:
              Updated:

              Slack

                Issue deployment