| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| | |
MIXLIB-25 should be included in change log
|
| | |
|
|/ |
|
|\
| |
| | |
MIXLIB-6: Fedora test break due to symlink
|
| | |
|
| |
| |
| |
| | |
for the test.
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
MIXLIB-25: Only close handles that are set to a valid handle value
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
|
|
| |
Originally we needed this hack for 1.8.6 and 1.8.7, which were the most
common versions in use at the time. 1.8.6 is dead so we don't need to
account for it any more, which leaves 1.8.7 as the only case we need to
care about for this hack. On Ruby 1.9 and greater this hack isn't needed
and causes memory bloat for very long running shell commands.
|
|
|
|
|
|
| |
Attempting to reproduce this in isolation hasn't worked. Add debug
information permanently so we may get a hint of why this test sometimes
fails if we see it again.
|
|\
| |
| | |
New policy files.
|
|/ |
|
|\ |
|
|/
|
|
| |
allows the user to use custom error-handling logic. error! now uses error? internally.
|
|\
| |
| |
| | |
Add the travis.
|
|/ |
|
|\
| |
| |
| |
| | |
* Closes https://tickets.opscode.com/browse/MIXLIB-24
* Expand timeout process cleanup to include grandchildren.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is not a good way to reliably detect whether all grandchildren
have exited after sending a TERM to the process group; if the child has
correctly exited, grandchildren (which may be unresponsive) will have
been adopted by init (ppid == 1) so the parent cannot wait() on them. To
ensure no stuck grandchildren are left, send a KILL to the process group
after allowing the processes time to clean up.
|
| |
| |
| |
| |
| |
| |
| | |
To ensure that all child processes are properly signaled to exit before
forcibly killing them, use `setsid()` in the child process to give the
child (and any grandchildren it might create) a new and unique process
group. If the command times out, kill and reap the entire process group.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
/bin/sh on Ubuntu is dash, which does not support bash's behavior of
using exec to run a command (instead of fork) when possible. This means
that, when given a single string command, instead of an array of command
plus arguments, the process created by fork/exec is dash, and the ruby
program is a child process of dash. When shellout signals the child to
exit after a timeout, it will signal dash instead of the ruby program.
To avoid this issue, the command needs to be given as an Array to avoid
creating a subshell.
|
|/
|
|
|
| |
RSpec seems to be much better at filtering nowadays and the extra lines
are a PITA in development.
|
|\
| |
| | |
Fix windows tests
|
| |
| |
| |
| |
| |
| |
| |
| | |
Message from Bundler before this change:
The source :rubygems is deprecated because HTTP requests are insecure.
Please change your source to 'https://rubygems.org'; if possible, or
'http://rubygems.org'; if not.
|
|/
|
|
| |
This change ensures the bat file is in sync with what we have in
opscode/chef.
|
| |
|
|\ |
|
| |
| |
| |
| |
| | |
If no logger is configured, we still want to inform the user that the
process was killed (and how).
|
| |
| |
| |
| |
| | |
If a logger is configured, send `error` level messages about child
process termination for timeout violations.
|
| |
| |
| |
| |
| | |
removes some complexity that was introduced with the fix to kill
timed-out child processes
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes MIXLIB-16.
This issue is particularly prominent when yum/rpm commands go off the
deep end repeatedly, but affects any case where a process takes longer
than the timeout to complete.
|
| | |
|
|/ |
|
|\
| |
| | |
[MIXLIB-7] remove awesome_print
|
|/ |
|
|\
| |
| | |
remove Associated Press Breaking API gem dep
|
| |
| |
| |
| | |
- my guess is awesome_print used to be called 'ap'?
|
|\ \
| |/
|/| |
min version for win32-process is 0.7.1
|
| |
| |
| |
| |
| |
| | |
- win2k3r2 is broken in 0.7.0 see:
https://github.com/djberg96/win32-process/issues/8
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is a compromise that prevents us from leaving zombie processes
around after a failed exec raises ENOENT, but prevents us from blocking
(possibly forever) on timed-out commands. The latter case can cause
zombies, so this is not optimal for all cases. See MIXLIB-16 for a
proposed enhancement to solve that case.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Ported the regression test from OHAI-455 to mixlib-shellout, which
revealed a race condition in the way shellout reaps the child after a
failed exec (most commonly caused by attempting to run a command that
doesn't exist). The call to waitpid2 used WNOHANG to avoid hanging
indefinitely if an error was caused but the child process was still
alive, but this results in the child process not getting reaped if it
exits after the call to waitpid2. In a single run of the stress test,
this occurred 94/100 times, so it is very likely that mixlib-shellout
will leak zombies for the ENOENT case without this change.
|