Issue #3013 has been updated by Ricky Zhou.
Markus Roberts wrote: > One point though--unless I'm mistaken, even if the select works we have no > assurance that there will be 4096 bytes available, so we could easily hang > there waiting for more data (or an EOF) that will never come. > > I'm not thrilled with the byte at a time solution either, but at least in the > case where we resort to sysread I see no good alternative. With a pipe, if there are less than 4096 bytes available, read will return after reading just those bytes, so I don't think you need to worry about blocking. Leaving the tempfile for 0.25.3 sounds fine. I'll try to look into race conditions with the select solution (perhaps we need to do a select + read after the waitpid to empty the buffer as well). ---------------------------------------- Bug #3013: util.rb:execute broken on Ruby <1.8.3 http://projects.reductivelabs.com/issues/3013 Author: Ricky Zhou Status: Code Insufficient Priority: Urgent Assigned to: Markus Roberts Category: exec Target version: 0.25.3 Affected version: 0.25.2 Keywords: Branch: http://github.com/MarkusQ/puppet/tree/ticket/0.25.x/3013 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.
