From: Rich Felker <dalias@libc.org>
To: Florian Weimer <fweimer@redhat.com>
Cc: Daniele Personal <d.dario76@gmail.com>,
d.dario76@fmail.com, musl@lists.openwall.com
Subject: Re: [musl] pthread_mutex_t shared between processes with different pid namespaces
Date: Tue, 4 Feb 2025 13:53:40 -0500 [thread overview]
Message-ID: <20250204185340.GT10433@brightrain.aerifal.cx> (raw)
In-Reply-To: <87ed0fj5yi.fsf@oldenburg.str.redhat.com>
On Mon, Feb 03, 2025 at 06:25:41PM +0100, Florian Weimer wrote:
> * Daniele Personal:
>
> > On Sat, 2025-02-01 at 17:03 +0100, Florian Weimer wrote:
> >> * Daniele Personal:
> >>
> >> > > Is this required for implementing the unlock-if-not-owner error
> >> > > code
> >> > > on mutex unlock?
> >> >
> >> > No, I don't see problems related to EOWNERDEAD.
> >>
> >> Sorry, what I meant is that the TID is needed for efficient reporting
> >> of
> >> usage errors. It's not imposed by the robust list protocol as such..
> >> There could be a PID-namespace-compatible robust mutex type that does
> >> not have this problem (but with less error checking).
> >>
> >> Thanks,
> >> Florian
> >>
> >
> > Are you saying that there are pthread_mutexes which can be shared
> > across processes run on different pid namespaces? If yes I'm definitely
> > interested on this. Can you tell me something more?
>
> You would have to add a new mutex type that is a mix of
> PTHREAD_MUTEX_NORMAL amd PTHREAD_MUTEX_ROBUST. Closer to the latter,
> but without the ownership checks.
This is inaccurate. Robust mutexes fundamentally depend on having the
owner's tid in the owner field, and on this value not matching the tid
of any other task that might hold the mutex. If these properties don't
hold, the mutex may fail to unlock when the owner dies, or incorrectly
unlock when another task mimicking the owner dies.
The Linux robust mutex protocol fundamentally does not work across pid
namespaces.
Rich
next prev parent reply other threads:[~2025-02-04 18:53 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-28 13:22 Daniele Personal
2025-01-28 15:02 ` Rich Felker
2025-01-28 16:13 ` Daniele Personal
2025-01-28 18:24 ` Florian Weimer
2025-01-31 9:31 ` Daniele Personal
2025-01-31 20:30 ` Markus Wichmann
2025-02-03 13:54 ` Daniele Personal
2025-02-01 16:03 ` Florian Weimer
2025-02-03 12:58 ` Daniele Personal
2025-02-03 17:25 ` Florian Weimer
2025-02-04 16:48 ` Daniele Personal
2025-02-04 18:53 ` Rich Felker [this message]
2025-02-05 10:17 ` Daniele Personal
2025-02-05 10:32 ` Florian Weimer
2025-02-06 7:45 ` Daniele Personal
2025-02-07 16:19 ` Rich Felker
2025-02-08 9:20 ` Daniele Dario
2025-02-08 12:39 ` Rich Felker
2025-02-08 14:40 ` Daniele Dario
2025-02-08 14:52 ` Rich Felker
2025-02-10 16:12 ` Daniele Personal
2025-02-10 18:14 ` Rich Felker
2025-02-11 9:34 ` Daniele Personal
2025-02-11 11:38 ` Rich Felker
2025-02-11 13:53 ` Daniele Personal
2025-02-10 18:44 ` Jeffrey Walton
2025-02-10 18:58 ` Rich Felker
2025-02-07 16:34 ` Florian Weimer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250204185340.GT10433@brightrain.aerifal.cx \
--to=dalias@libc.org \
--cc=d.dario76@fmail.com \
--cc=d.dario76@gmail.com \
--cc=fweimer@redhat.com \
--cc=musl@lists.openwall.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).