Details
-
Bug
-
Status: Accepted
-
Major
-
Resolution: Unresolved
-
0.27.0
-
None
-
Mesosphere Sprint 28
-
2
Description
Mostly copied from this comment
A subprocess inheriting the environment variables LIBPROCESS_* may run into some accidental fatalities:
Subprocess uses libprocess | Subprocess is something else | |
---|---|---|
Subprocess sets/inherits the same PORT by accident | Bind failure -> exit | Nothing happens |
Subprocess sets a different PORT on purpose | Bind success | Nothing happens |
= means this is usually the case, but not 100%.
A complete fix would look something like:
- If the subprocess call gets environment = None(), we should automatically remove LIBPROCESS_PORT from the inherited environment.
- The parts of executorEnvironment dealing with libprocess & libmesos should be refactored into libprocess as a helper. We would use this helper for the Containerizer, Fetcher, and ContainerLogger module.
- If the subprocess call is given LIBPROCESS_PORT == os::getenv("LIBPROCESS_PORT"), we can LOG(WARN) and unset the env var locally.
Attachments
Issue Links
- is a clone of
-
MESOS-4598 Logrotate ContainerLogger should not remove IP from environment.
- Resolved
- is related to
-
MESOS-4585 mesos-fetcher LIBPROCESS_PORT set to 5051 URI fetch failure
- Resolved
- relates to
-
MESOS-4601 Don't dump stack trace on failure to bind()
- Resolved
-
MESOS-4353 Limit the number of processes created by libprocess
- Resolved