[ https://issues.apache.org/jira/browse/PROTON-2812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17837355#comment-17837355 ]
Clifford Jansen commented on PROTON-2812: ----------------------------------------- An additional possible mitigation (with thanks to astitcher): Since the epoll proactor knows when the getaddrinfo calls are needed and also when they are completed, it could regulate a maximum concurrent number of threads committed to servicing such calls. > Epoll proactor blocks thread during DNS lookups in getaddrinfo > -------------------------------------------------------------- > > Key: PROTON-2812 > URL: https://issues.apache.org/jira/browse/PROTON-2812 > Project: Qpid Proton > Issue Type: Bug > Components: proton-c > Affects Versions: proton-c-0.39.0 > Reporter: Clifford Jansen > Assignee: Clifford Jansen > Priority: Major > Attachments: mitigate01.diff > > > 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. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org