Avihai Horon <avih...@nvidia.com> writes: > The commit in the fixes line moved multifd thread creation to a > different location, but forgot to move the p->running = true assignment > as well. Thus, p->running is set to true before multifd thread is > actually created. > > p->running is used in multifd_save_cleanup() to decide whether to join > the multifd thread or not. > > With TLS, an error in multifd_tls_channel_connect() can lead to a > segmentation fault because p->running is true but p->thread is never > initialized, so multifd_save_cleanup() tries to join an uninitialized > thread. > > Fix it by moving p->running = true assignment right after multifd thread > creation. Also move qio_channel_set_delay() to there, as this is where > it used to be originally. > > Fixes: 29647140157a ("migration/tls: add support for multifd tls-handshake") > Signed-off-by: Avihai Horon <avih...@nvidia.com>
Just for context, I haven't looked at this patch yet, but we were planning to remove p->running altogether: https://lore.kernel.org/r/20231110200241.20679-1-faro...@suse.de