Page MenuHomeVyOS Platform

During commit, any script output directed to stdout will contain path
Closed, ResolvedPublicBUG

Description

During commit, the vyos backend intercepts and prepends the stdout stream with diagnostic information in case of error; any subsequent write to stdout during commit will carry the path as part of the prepend message, even in the absence of error.

This is not new behaviour, but had been minimally disruptive until replacing os.system with vyos.util.call in many scripts; vyos.util.call will print to stdout even in the case of empty output, and hence will always carry the prepend_msg.

The backend logic of adding the path to the prepend message, even in the absence of error, appears to be incorrect and will be evaluated here to see if the benefits of changing it outweigh possible complications.

The Python function vyos.util.call will be changed to only print non-empty output, as is reasonable, but will have the effect of suppressing the output of the path on (many) script invocations.

Details

Difficulty level
Normal (likely a few hours)
Version
vyos-1.3
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

jestabro triaged this task as Normal priority.Apr 21 2020, 2:47 AM
jestabro created this task.
jestabro created this object in space S1 VyOS Public.
jestabro changed the task status from Open to In progress.Apr 21 2020, 2:56 AM

The immediate issue was resolved above. As far as changing the backend code, this will only be done if there emerges another annoyance; for now, we will consider the preamble 'path' when calling print in a config session a 'feature'.

Reopen if needed, but considered resolved.

erkin set Issue type to Bug (incorrect behavior).Aug 30 2021, 6:43 AM