Issue 903261 timeout not working on shell command when using elevation #123
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When using ExcecuteShellCommand (or Script) with a specific Timeout, when using ElevationType sudo, the Timeout is ignored and does not work. This is because the monitoring thread checking the timeout, when trying to kill (killpg) the running process (that is executing the command/script) will fail with EPERM (access denied) because we are running (omiagent) with an unprivileged account, while the process that we are trying to kill is running as privileged as root due to the fact that when constructing the command, we will include SUDO. There is also another issue here that when this will actually throw an Exception (that is what is happening when EPERM will happen) the thread goes away and we swallow the exception without showing it or logging it anywhere.