On Wed, 2020-11-04 at 18:41 -0600, Benjamin Marzinski wrote: > On Wed, Nov 04, 2020 at 11:56:07PM +0000, Martin Wilck wrote: > > > > I guess the key is that the thread's entry point must also be in > > libmultipath (i.e. outside the DSO). In pseudo-code: > > > > entrypoint() { > > refcount++; > > pthread_cleanup_push(refcount--); > > tur_thread(ct); > > pthread_cleanup_pop(1); > > } > > > > This way the thread can't be in DSO code any more when refcount > > goes to > > zero. > > Oh! I didn't think of solving it that way, but it makes sense. So, > were > you planning on posting a patch? I just did ("libmultipath: prevent DSO unloading with astray checker threads"). Please have a look and possibly test it using the setup that failed for you before. Regards Martin -- Dr. Martin Wilck <mwilck@xxxxxxxx>, Tel. +49 (0)911 74053 2107 SUSE Software Solutions Germany GmbH HRB 36809, AG Nürnberg GF: Felix Imendörffer -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel