resmoke.py should escape null bytes in the output of subprocesses

XMLWordPrintableJSON

    • Fully Compatible
    • STM 2019-03-25
    • 1
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      mongod is very happy to write null bytes to its stdout when they come from user input. Take setting logComponentVerbosity={write: 1} and including a null byte in an update command as one example. mongod writing a null byte to its stdout causes resmoke.py to write a null bytes to its stdout. (resmoke.py currently only attempts to deal with how the server doesn't necessarily write valid UTF-8 to its logs, see SERVER-7506). This has an unfortunate consequence with tools like grep which treat output containing a null byte as binary rather than text.

      In order to make it so grep --text doesn't need to be specified when engineers are filtering out log messages from the server that pass through resmoke.py, we should have resmoke.py escape b"\0" as

      b"\\0"

      .

            Assignee:
            Max Hirschhorn
            Reporter:
            Max Hirschhorn
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: