Issue #10909 has been updated by Matt Robinson.

This sounds worth doing an audit of the codebase to see where we can do this to 
protect ourselves against this problem since it seems to be recurring and we 
have about a dozen tickets related to the issue, the earliest appears to be 
#4466.  It seems like it was fixed in the Kernel, but recently Redhat released 
a kernel version that regressed.  The support ticket Josh mentions in the 
ticket description isn't readable to most, so here's an excerpt:

    I get expected pass/fail across different kernel versions:
    pass 2.6.18-238.el5 
    fail 2.6.18-274.7.1.el5 
    pass 2.6.18-298.el5.bz751214.1

The one concern I've heard raised about switching from using IO.read to 
shelling out is that if it's something that happens frequently, the overhead of 
forking to run the shell command could slow things way down.  I'll keep that in 
mind when looking through the code.
----------------------------------------
Bug #10909: Shell out when reading from /proc
https://projects.puppetlabs.com/issues/10909

Author: Josh Cooper
Status: Accepted
Priority: Normal
Assignee: 
Category: 
Target version: 
Keywords: 
Branch: 
Affected Facter version: 


There are many places in facter where it using ruby's IO.read or IO.readlines 
to read the contents of files in /proc. This is problematic, as it can cause 
ruby to block definitely. It is better to use:

<pre>
Facter::Util::Resolution.exec("/bin/cat #{uptime_file} 2>/dev/null")
</pre>

with an appropriate timeout. This issue was triggering 
https://support.puppetlabs.com/tickets/482 (though not the cause)


-- 
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://projects.puppetlabs.com/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.

Reply via email to