Joe Kutner created JRUBY-6362: --------------------------------- Summary: Subprocess IO yields no ouput Key: JRUBY-6362 URL: https://jira.codehaus.org/browse/JRUBY-6362 Project: JRuby Issue Type: Bug Reporter: Joe Kutner Assignee: Thomas E Enebo Attachments: subprocess.rb
While trying to fix a JRuby specific bug in Vagrant <http://vagrantup.com/> that uses ChildProcess (<https://github.com/jarib/childprocess>) to execute some commands, I found that output cannot always be retrieved from a subprocess. I've been able to reproduce the bug in a single file here: https://gist.github.com/1647275 It is creating two ChildProcesses (via the Subprocess class), and executing them in order. Vagrant::Util::Subprocess.new("VBoxManage", "--version").execute Vagrant::Util::Subprocess.new("VBoxManage", "--version").execute In the execute method, a ChildProcess is created: process = ChildProcess.build(*@command) stdout, stdout_writer = IO.pipe stderr, stderr_writer = IO.pipe process.io.stdout = stdout_writer process.io.stderr = stderr_writer process.duplex = true Then it tried to read the output from the stdout pipe: data << io.read_nonblock(READ_CHUNK_SIZE) The first time, the ChildProcess works correctly, but the second time it yields no output. INFO subprocess: Starting process: ["VBoxManage", "--version"] DEBUG subprocess: Selecting on IO DEBUG subprocess: stdout: 4.1.8r75467 DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000 DEBUG subprocess: Exit status: 0 INFO subprocess: Starting process: ["VBoxManage", "--version"] DEBUG subprocess: Selecting on IO DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 31999 DEBUG subprocess: Exit status: 0 Reproduce with this script: https://gist.github.com/1647275 Background: http://markmail.org/thread/e7rmwy4jp53e3wjj https://github.com/mitchellh/vagrant/issues/658 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email