Issue #3013 has been updated by Ricky Zhou.
When writing the sysread version, I looked at the differences between sysread and readpartial outlined at http://ruby-doc.org/core/classes/IO.html#M002269. One of those differences is that readpartial takes care of restarting on EINTR (I did not need to do the same for EAGAIN because that only happens with O_NONBLOCK enabled, which is not the case with IO.pipe). EINTR would happen if the read syscall were interrupted by a signal. I wouldn't know how to get the timing right to actually produce this on purpose though, but it would be unnecessary to just fail when it's possible to retry the syscall. ---------------------------------------- Bug #3013: util.rb:execute broken on Ruby <1.8.3 http://projects.reductivelabs.com/issues/3013 Author: Ricky Zhou Status: Needs more information Priority: Urgent Assigned to: Ricky Zhou Category: exec Target version: 0.25.3 Affected version: 0.25.2 Keywords: Branch: Apparently the patch in ticket #2731 introduced one more issue by using readpartial, which isn't available until ruby 1.8.3 (RHEL4 at least is affected). I'm not sure how this is normally handled in ruby, but if the readpartial function is not available, the code should fall back to sysread (along with some code for handling EINTR). Anybody with better ruby knowledge know how this should be done? -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://reductivelabs.com/redmine/my/account--
You received this message because you are subscribed to the Google Groups "Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
