[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH] util: remove the obsolete non-bloc
From: |
Fam Zheng |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH] util: remove the obsolete non-blocking connect |
Date: |
Fri, 16 Jun 2017 08:21:25 +0800 |
User-agent: |
Mutt/1.8.0 (2017-02-23) |
On Thu, 06/15 11:08, Mao Zhongyi wrote:
> From: Cao jin <address@hidden>
>
> The non-blocking connect mechanism is obsolete, and it doesn't
> work well in inet connection, because it will call getaddrinfo
> first and getaddrinfo will blocks on DNS lookups. Since commit
> e65c67e4 & d984464e, the non-blocking connect of migration goes
> through QIOChannel in a different manner(using a thread), and
> nobody use this old non-blocking connect anymore.
>
> Any newly written code which needs a non-blocking connect should
> use the QIOChannel code, so we can drop NonBlockingConnectHandler
> as a concept entirely.
>
> Cc: address@hidden
> Cc: address@hidden
> Cc: address@hidden
> Cc: address@hidden
> Cc: address@hidden
> Cc: address@hidden
> Cc: address@hidden
> Cc: address@hidden
> Cc: address@hidden
> Cc: address@hidden
> Suggested-by: Daniel P. Berrange <address@hidden>
> Signed-off-by: Cao jin <address@hidden>
> Signed-off-by: Mao Zhongyi <address@hidden>
> ---
> This patch was reviewed by Daniel about a years ago, but it has never
> been merged just since socket_connect() called by net_socket_connect_init()
> where NonBlockingConnectHandler was passed to socket_connect(). it's broken.
>
> Now this problem was worked around by Daniel's patch(commit 6701e551 'Revert
> "Change net/socket.c to use socket_*() functions" again'). Therefore, resend
> it, of course, part of related code has changed over the years, so changed
> the patch accordingly.
>
> The reviewed patch listed on:
> https://lists.gnu.org/archive/html/qemu-devel/2016-07/msg06373.html
>
> block/sheepdog.c | 2 +-
> include/qemu/sockets.h | 9 +--
> io/channel-socket.c | 2 +-
> util/qemu-sockets.c | 198
> ++++++-------------------------------------------
As pointed out by patchew, looks like you forgot to update block/ssh.c.
Fam