Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
proton-c-0.39.0
-
None
-
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.