Synchronous name service queries are done from the main thread -> potential long delays
@tanuk
Submitted by Tanu Kaskinen Assigned to pul..@..op.org
Description
pa_get_fqdn() does a name service query with getaddrinfo(). The query is synchronous, and can take a long time, and since pa_get_fqdn() is called from the server's main thread (e.g. module-native-protocol-tcp via pa_socket_server_get_address()), the server will get stalled for the duration of the query. This was originally reported in Tizen's bug tracker: https://bugs.tizen.org/jira/browse/TC-1130
If the query to get the FQDN takes a long time, the network configuration can perhaps be considered broken, but nevertheless, I think we should be resistant to misconfigured networks. pa_get_fqdn() can't be changed to an asynchronous version, because it's part of the stable API, but we can add a new function pa_get_fqdn_async() that uses libasyncns. Then all code that currently uses pa_get_fqdn() should be reviewed and changed to use pa_get_fqdn_async() if necessary.