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);