-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/68297/
-----------------------------------------------------------

(Updated Aug. 15, 2018, 8:12 p.m.)


Review request for mesos, Benjamin Mahler, Gastón Kleiman, and Joseph Wu.


Changes
-------

Switched to `%3A`. TODO: Maybe use `process::http::encode` here instead.


Bugs: MESOS-9109
    https://issues.apache.org/jira/browse/MESOS-9109


Repository: mesos


Description
-------

Per MESOS-9109, some frameworks, such as Chronos, use a `:` in their
`executorId`, but this is a reserved character on Windows, and when
its use as part of the path on disk results in an OS error.
Unfortunately, we need to remain backward-compatible with existing
frameworks, so now we escape `:` as `_COLON_` when writing to disk,
and unescape it when parsing.

Note that we explicitly do not escape to `%3A` (the ASCII equivalent),
because otherwise it is impossible to query for the file over HTTP, as
libprocess helpfully (but not in this case) pre-emptively decodes it
to `:` and so queries for the incorrect path.


Diffs (updated)
-----

  src/slave/paths.cpp ed0b1276908f4990ce7a24c96aea20e8c79d3126 
  src/tests/paths_tests.cpp 4808402f789ebc783b308c03b8e412ba22bf9f5d 


Diff: https://reviews.apache.org/r/68297/diff/2/

Changes: https://reviews.apache.org/r/68297/diff/1-2/


Testing
-------

```
[----------] Global test environment tear-down
[==========] 1008 tests from 98 test cases ran. (446260 ms total)
[  PASSED  ] 1008 tests.
```

Note that this is without changing the used-everywhere default executor ID of 
`default` to `default:id`, which I also tested, but required changes of asserts 
(and caused long path issues only solvable by changing the machine's registry, 
so I'd rather not include it).


Thanks,

Andrew Schwartzmeyer

Reply via email to