mesos-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (MESOS-8857) Fix subprocess(flags) logic on Windows to handle arguments with quotes
Date Thu, 10 May 2018 16:31:00 GMT


ASF GitHub Bot commented on MESOS-8857:

GitHub user radhikaj opened a pull request:


    Fixing bug described in
    echo on windows just reproduces the command line args it receives and does not apply any
text processing to it. The Flags test in SubProcessTest expects standard text processing to
be applied to the command line args. Therefore instead of using echo on windows to test that
flags are being fed correctly to a console app, we add test-flags.exe which receives command
line args via argv and prints argv's elements out with a space in between.

You can merge this pull request into a Git repository by running:

    $ git pull fixtestflags

Alternatively you can review and apply these changes as the patch at:

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #289


> Fix subprocess(flags) logic on Windows to handle arguments with quotes
> ----------------------------------------------------------------------
>                 Key: MESOS-8857
>                 URL:
>             Project: Mesos
>          Issue Type: Bug
>            Reporter: Andrew Schwartzmeyer
>            Assignee: Radhika Jandhyala
>            Priority: Major
>              Labels: flags, libprocess, windows
> In the {{SubprocessTest.Flags}} unit test, a bug was discovered where the flags argument
{{flags.s3 = "\"geek\"";}} does not make it round-trip back to the test. It is because the
{{stringify_args}} logic in {{shell.hpp}} purposefully (correctly?) surrounds an argument
that contains a double quote with a pair of double quotes. Thus the final command-line flag
looks like {{"\"--s3=\\\"geek\\\"\""}}, which {{flags.load()}} then fails to reparse. The
same problem occurs for the (more complicated) JSON flag.
> I believe this is because the original logic was expecting the shell to drop the quotes
({{echo "--s3=\"geek\""}} in Bash returns {{--s3="geek"}}, but {{cmd.exe}} echos {{"--s3=\"geek\""}},
exactly what was passed. Maybe the test just needs to be fixed; maybe the stringifier shouldn't
add more quotes; maybe {{flags.load()}} needs to parse the quotes and escapes.
> For now, we're enabling the rest of the test by turning off those two checks.

This message was sent by Atlassian JIRA

View raw message