Kindly ping. Maybe this bugfix is need for qemu-5.2 version. On 2020/11/6 18:54, Chuan Zheng wrote: > Since we now support tls multifd, when we cancel migration, the TLS > sockets will be left as CLOSE-WAIT On Src which results in socket > leak. > Fix it by closing TLS channel before socket finalize. > > Signed-off-by: Chuan Zheng <zhengch...@huawei.com> > --- > migration/multifd.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/migration/multifd.c b/migration/multifd.c > index 68b171f..a6838dc 100644 > --- a/migration/multifd.c > +++ b/migration/multifd.c > @@ -523,6 +523,19 @@ static void multifd_send_terminate_threads(Error *err) > } > } > > +static void multifd_tls_socket_close(QIOChannel *ioc, Error *err) > +{ > + if (ioc && > + object_dynamic_cast(OBJECT(ioc), > + TYPE_QIO_CHANNEL_TLS)) { > + /* > + * TLS channel is special, we need close it before > + * socket finalize. > + */ > + qio_channel_close(ioc, &err); > + } > +} > + > void multifd_save_cleanup(void) > { > int i; > @@ -542,6 +555,7 @@ void multifd_save_cleanup(void) > MultiFDSendParams *p = &multifd_send_state->params[i]; > Error *local_err = NULL; > > + multifd_tls_socket_close(p->c, NULL); > socket_send_channel_destroy(p->c); > p->c = NULL; > qemu_mutex_destroy(&p->mutex); >
-- Regards. Chuan