Hey all,
I have a set of patches up for MESOS-9109 that I need reviewed, starting
here: https://reviews.apache.org/r/68297/.
Eduard here was trying to use Chronos to schedule a task on a Windows
agent, and found an error due to the fact that Chronos uses colons (as
in `:`) in its generated framework (and task) IDs. Now, to maintain
backward compatibility, we obviously can't disallow the use of `:` as
there are frameworks already using it. However, this is a reserved
character on Windows for file system paths
(https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file),
so it cannot be in the path.
My first implementation simply applied `s/:/_COLON_` to `frameworkId`
and `taskId` in the functions in `paths.cpp` which generate Mesos's
filesystem paths. While this worked, it's kind of a kludge. Or that is
to say, it would nicer to use the ASCII representation of `%3A` instead.
Doing so, however, revealed a bug in libprocess (MESOS-9168) that I have
also fixed and need reviewed, starting here:
https://reviews.apache.org/r/68420/
So combining the two fixes, the chain maps `:` in `frameworkId` and
`taskId` to `%3A` (and back when appropriate). This obviously doesn't
fix any third-party tooling, but being Windows, I don't think there is
any yet to worry about.
I wanted to get this in for 1.7, but due to a miscommunication, we were
not able to land it in time. If you can, please review! Or if you have a
better way of doing this, let me know!
Thanks,
Andy
P.S. Original discussion here:
https://mesos.slack.com/archives/C1LPTK50T/p1533324650000396 (our Slack
archives seem to be down, so this is only available until Slack cycles
out sadly).
- Follow up to discussion regarding use : in paths on W... Andrew Schwartzmeyer
-