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

Reply via email to