-
Notifications
You must be signed in to change notification settings - Fork 588
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RA: Filesystem: bind mount point unmounting postcondition check failure (for being member of 2+ mounts in misordered chaining scenario) has the power to unintendedly(!) kill all processes #1304
Comments
To add, cannot exclude this is not specific to Simple yet possibly non-portable or otherwise problematic solutions:
Also, for a better auditability, the
log lines (how unwieldy the above looks without squeezing the
It's really a dangerous thing for a privileged process to decide |
Have you tried with |
This may help, however the degenerate case of burning everything down |
EDIT: the root cause detailed in the next comment:
https://lists.clusterlabs.org/pipermail/users/2019-February/025454.html To be pointed out this was rather a naive original proposition
Knowing the problem at hand (see below), let's refine this constraint
Full circle back... ClusterLabs/pcs#197 (comment) Other sorts of agents are eligible for similarly critical review |
Actually, referenced issue is not necessarily of that The very root cause of the referenced case is a situation
since when The other part of thinkable configuration sanity enforcement Rgmanager as a cluster resource manager was superior in this Pacemaker is more universal but lacks all this implicit (sorry if it's all rather chaotic, don't have weeks to |
Immediate solution here is likely along the lines of Regarding wider surface, locking (journaling) like approach could And finally, I think systemic solution is needed, will OCF help |
Perhaps it'd be enough if mounting over an existing |
Wow, that's a nasty bug. |
I guess we could do a @jnpkrn Did you mean |
On 18/03/19 03:54 -0700, Oyvind Albrigtsen wrote:
@jnpkrn Did you mean `safe` in your last comment
`force_unmount=strict`? Anything but `true` or `safe` is treated as
`false` for `force_unmount`.
Actually I meant a new value in the enumeration that would preserve
the current (allegedly wrong in this very case) semantics, moving the
default (`true`) towards current behaviour sans killing accesses
related to the root filesystem if the decision ends up like
that (shall rather not, but...).
Since it's "unsafe behaviour can be understood as explicitly safer",
it's not too troubling direction regarding the compatibility, IMHO,
but versioned parameters can be used if it's of any importance.
…--
Jan (Poki)
|
Sounds like this patch might solve this issue: #1362 |
Vaguely, it would only solve the |
Follow:
In case of
bind
mount and in rare circumstance thattry_umount $SUB
fails (e.g. because the source of the
bind
mounting was itselfa mount point that hung for some reason), resource agent will proceed
to kill every process touching the same filesystem as the target
directory of this
bind
mount (as detected byfuser -m
), but atthat point, it boils down to any process touching the root mount
point of
/
, which is practically the whole world (if not for anythingelse, every non-
chroot
ed process under Linux will touch that veryfilesystem because of possessing a reference to it as its "root").
That's very bad, since this is a misbehaviour and only the cluster
resource manager shall take decisions about what to do on the failed
stop
action (if that indeed shall be the expected outcome in thisvery case).
Case in point (thanks @computer045 for the report):
ClusterLabs/pcs#197
The text was updated successfully, but these errors were encountered: