On 2/9/23 08:48, Frode Nordahl wrote:
> Commit 08e9e5337383 fixed proper initialization of the dns-resolve
> module, and made DNS resolution asynchronous.
> 
> A side effect of that change revealed a long standing logic bug
> which broke ovsdb-server listener configuration using DNS names.
> 
> Previously this worked because the DNS resolution would block,
> now that DNS resolution is asynchronous the code before this
> change would assume the error from jsonrpc_pstream_open meant
> the remote was a specification for an active outgoing
> connection, even when that was not the case.
> 
> To fix this a couple of changes was made to socket-util:
> 1) Pass optional result of dns resolution from inet_parse_passive.
> 
> When (re-)configuring listeners that use DNS names, we may need
> to know whether the provided connection string is invalid or if
> the provided DNS name has finished resolving.
> 
> 2) Check dns resolution status in inet_open_passive.
> 
> If the connection string is valid, and contains a DNS name,
> inet_open_passive will now return -EAGAIN if dns resolution
> failed.  DNS resolution failure may either mean the asynchronous
> resolver has not completed yet, or that the name does not resolve.
> 
> Reported-at: https://bugs.launchpad.net/bugs/1998781
> Fixes: 08e9e5337383 ("ovsdb: raft: Fix inability to read the database with 
> DNS host names.")
> Fixes: 771680d96fb6 ("DNS: Add basic support for asynchronous DNS resolving")
> Signed-off-by: Frode Nordahl <[email protected]>
> ---
>  lib/socket-util.c      | 13 ++++++++++---
>  lib/socket-util.h      |  3 ++-
>  ovsdb/jsonrpc-server.c | 43 ++++++++++++++++++++++++++----------------
>  3 files changed, 39 insertions(+), 20 deletions(-)
> 


Thanks!  I fixed the 'sesssion' typo and applied the patch.
Also, backported down to 2.17.

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to