Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Bump the version number for release.1.4.01.4-stable | sersut | 2014-04-08 | 1 | -1/+1 |
| | |||||
* | Bump the version number for RC release.1.4.0.rc.1 | sersut | 2014-03-31 | 1 | -1/+1 |
| | |||||
* | Handle ESRCH when getting pgid of a zombie on OS X | danielsdeleo | 2014-03-31 | 1 | -1/+17 |
| | |||||
* | Bump the version number for RC release.1.4.0.rc.0 | sersut | 2014-03-30 | 1 | -1/+1 |
| | |||||
* | Handle leak fix for leaked token handle, avoid double close | adamedx | 2014-03-17 | 2 | -16/+25 |
| | |||||
* | Only close handles that are set to a valid handle value | Adam Edwards | 2014-03-17 | 1 | -3/+3 |
| | |||||
* | Retire the GC disable hack for all but ruby 1.8.7 | danielsdeleo | 2014-03-07 | 1 | -4/+9 |
| | | | | | | | | 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. | ||||
* | Adds error? method to check whether the process exited successfully. This ↵ | Chris Armstrong | 2014-01-21 | 1 | -8/+12 |
| | | | | allows the user to use custom error-handling logic. error! now uses error? internally. | ||||
* | Always send KILL to process group | danielsdeleo | 2013-12-09 | 1 | -32/+10 |
| | | | | | | | | | 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. | ||||
* | Run commands with unique pgid to improve timeout cleanup | danielsdeleo | 2013-12-09 | 1 | -6/+59 |
| | | | | | | | 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. | ||||
* | Bump the version number for release.1.3.0 | sersut | 2013-12-03 | 1 | -1/+1 |
| | |||||
* | Add termination info to error messages | danielsdeleo | 2013-11-04 | 2 | -1/+5 |
| | | | | | If no logger is configured, we still want to inform the user that the process was killed (and how). | ||||
* | Add logging about timed-out cmd termination when possible | danielsdeleo | 2013-11-04 | 1 | -0/+2 |
| | | | | | If a logger is configured, send `error` level messages about child process termination for timeout violations. | ||||
* | Cleanup control flow in main loop | danielsdeleo | 2013-11-01 | 1 | -13/+13 |
| | | | | | removes some complexity that was introduced with the fix to kill timed-out child processes | ||||
* | Force subprocess to exit after timeout | danielsdeleo | 2013-11-01 | 1 | -17/+52 |
| | | | | | | | | 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. | ||||
* | Use blocking waitpid only on ENOENT | danielsdeleo | 2013-09-11 | 1 | -2/+10 |
| | | | | | | | | 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. | ||||
* | Wait for child process to die in case of critical errors | danielsdeleo | 2013-09-09 | 1 | -1/+1 |
| | | | | | | | | | | | | 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. | ||||
* | Release 1.2.0.1.2.0 | sersut | 2013-07-19 | 1 | -1/+1 |
| | |||||
* | Bump the version number for RC release.1.2.0.rc.1 | sersut | 2013-06-24 | 1 | -1/+1 |
| | |||||
* | Make sure the parent process' LC_ALL setting is passed to subprocess when ↵ | sersut | 2013-06-14 | 1 | -0/+6 |
| | | | | LC_ALL is set to nil in the :environment setting. | ||||
* | close observed to throw EBADF | Lamont Granquist | 2013-06-14 | 1 | -2/+5 |
| | | | | | | - Unsure how File.for_fd() succeeds and then then #close on the File throws this, but it must be racing with something. I don't think we care. | ||||
* | Update version number for release candidate | adamedx | 2013-05-02 | 1 | -1/+1 |
| | |||||
* | More robust pipe checks and tests. | sersut | 2013-04-17 | 1 | -5/+7 |
| | |||||
* | Clean inherited file descriptors from the parent while forking subprocess. | sersut | 2013-04-16 | 1 | -0/+22 |
| | |||||
* | Set domain to . if no domain is passed | Moser, Kevin | 2013-03-13 | 1 | -2/+3 |
| | |||||
* | Update hash reference to symbols | Moser, Kevin | 2013-03-13 | 1 | -2/+2 |
| | |||||
* | Add option validation | Moser, Kevin | 2013-03-13 | 3 | -1/+19 |
| | |||||
* | Update comments for why to use LogonUser and CreateProcessAsUser in some cases | Moser, Kevin | 2013-02-22 | 1 | -1/+4 |
| | |||||
* | Fix comments | Moser, Kevin | 2013-01-15 | 1 | -2/+3 |
| | |||||
* | Revert "Bump version to 1.2.0 to package gem locally" | Moser, Kevin | 2013-01-15 | 1 | -1/+1 |
| | | | | This reverts commit 8d4efcd52d7a445769aa7e8b58285ac8fade64ed. | ||||
* | Bump version to 1.2.0 to package gem locally | Moser, Kevin | 2013-01-15 | 1 | -1/+1 |
| | |||||
* | Add check for service window station and do logonuser if so | Moser, Kevin | 2013-01-15 | 1 | -267/+195 |
| | |||||
* | Remove remote_call option | Moser, Kevin | 2013-01-15 | 2 | -5/+0 |
| | |||||
* | Remove local_system file | Moser, Kevin | 2013-01-15 | 1 | -72/+0 |
| | |||||
* | Add local_system file | Moser, Kevin | 2013-01-11 | 2 | -1/+73 |
| | |||||
* | Add process impersonation | Moser, Kevin | 2013-01-11 | 3 | -27/+89 |
| | |||||
* | MIXLIB_SHELLOUT-02: Fix comments about default timeout to avoid confusion. | Matthew Kent | 2012-10-24 | 2 | -2/+2 |
| | |||||
* | CHEF-3390: Avoid GC during Marshall.load | Bryan McLellan | 2012-09-17 | 1 | -5/+9 |
| | | | | | | | Ruby < 1.8.7p369 has a bug related to Marshall.load and GC, so let's disable Garbage Collection a little earlier. http://bugs.ruby-lang.org/issues/4339 | ||||
* | Release 1.1.01.1.0 | Bryan McLellan | 2012-08-06 | 1 | -1/+1 |
| | | | | | Adds stdin support, which allows passing data to stdin of the command run. Also adds additional spec tests. | ||||
* | Release 1.1.0.rc.11.1.0.rc.1 | Bryan McLellan | 2012-08-06 | 1 | -1/+1 |
| | |||||
* | [CHEF-2994][WINDOWS] Expanded Utils.should_run_under_cmd?() to work like ↵ | Ho-Sheng Hsiao | 2012-05-10 | 1 | -1/+34 |
| | | | | Ruby system() | ||||
* | [CHEF-2994][WINDOWS] Fixed Utils.which() | Ho-Sheng Hsiao | 2012-05-10 | 1 | -10/+26 |
| | | | | - Factored out Utils.should_run_under_cmd? (simple case) | ||||
* | [CHEF-2994][WINDOWS] Mixlib::ShellOut::Windows should push input into stdin | Ho-Sheng Hsiao | 2012-05-10 | 1 | -0/+5 |
| | |||||
* | [CHEF-2994][WINDOWS] Mixlib::ShellOut::Windows::Utils.which() is broken and ↵ | Ho-Sheng Hsiao | 2012-05-10 | 1 | -1/+4 |
| | | | | should just return nil instead of flailing around. | ||||
* | [CHEF-2994][WINDOWS] Factored out utility methods to ↵ | Ho-Sheng Hsiao | 2012-05-10 | 1 | -18/+24 |
| | | | | Mixlib::ShellOut::Windows::Utils | ||||
* | [CHEF-2994][WINDOWS] Broke out monkey patches to ↵ | Ho-Sheng Hsiao | 2012-05-10 | 2 | -364/+389 |
| | | | | mixlib/shellout/windows/core_ext | ||||
* | [CHEF-2994][WINDOWS] Broke up #command_to_run into manageable chunks | Ho-Sheng Hsiao | 2012-05-10 | 1 | -14/+19 |
| | | | | May reuse some of these as class methods so they are available as convention/utilities accessible to anyone on the Windows platform | ||||
* | [CHEF-2994][WINDOWS] Added unit tests for private method #command_to_run | Ho-Sheng Hsiao | 2012-05-10 | 1 | -2/+2 |
| | | | | | | Fixed bug with quoted .cmd files Fixed bug with finding .bat in the middle of the filename | ||||
* | [CHEF-2994][WINDOWS] Fixed remaining failing tests on windows | Ho-Sheng Hsiao | 2012-05-10 | 2 | -2/+1 |
| | |||||
* | [CHEF-2994][WINDOWS] Fixed multiple quotes in command | Ho-Sheng Hsiao | 2012-05-10 | 1 | -1/+5 |
| | | | | | | | CMD.exe does not parse multiple quotes well unless the whole thing is wrapped up in quotes. Workaround: https://github.com/opscode/mixlib-shellout/pull/2#issuecomment-4837859 http://ss64.com/nt/syntax-esc.html |