Taken from: https://salsa.debian.org/glibc-team/glibc/-/blob/6c823b5862bd91ca757eeb9c6f5326875bc8af01/debian/patches/hurd-i386/git-pthread_sigmask_nothread.diff Upstream 2.42 has a much more involved cleanup fix which in the end boils down to this. Index: glibc-upstream/sysdeps/mach/hurd/htl/pt-sigstate.c =================================================================== --- glibc-upstream.orig/sysdeps/mach/hurd/htl/pt-sigstate.c +++ glibc-upstream/sysdeps/mach/hurd/htl/pt-sigstate.c @@ -36,7 +36,10 @@ __pthread_sigstate (struct __pthread *th if (set != NULL) new = *set; - ss = _hurd_thread_sigstate (thread->kernel_thread); + if (thread == _pthread_self ()) + ss = _hurd_self_sigstate (); + else + ss = _hurd_thread_sigstate (thread->kernel_thread); assert (ss); _hurd_sigstate_lock (ss);