Issue #2731 has been updated by Ricky Zhou.

Hi, I looked through the code a bit, and it seems that puppet does try to check 
if the filesystem is mounted first.

I've been getting this with 0.25.1 as well, and I think it could be related to 
SELinux preventing puppet from checking if the filesystem is mounted (I have 
gotten AVC denials about puppet attempting to redirect output from mount into a 
temporary file).

Jonathan, do you have SELinux enabled, and can you check if this still happens 
with it disabled?

I'm not completely sure what the best solution is to this.  I guess an SELinux 
policy fix is in order, but I'm not too familiar with why puppet needs a 
temporary file to get the output of a command to begin with.  There is a 
comment in util.rb about this:

<pre>
# There are problems with read blocking with badly behaved children
# read.partialread doesn't seem to capture either stdout or stderr
# We hack around this using a temporary file

# The idea here is to avoid IO#read whenever possible.
</pre>

it seems that this was added as a somewhat hacky fix for bug #662, so it's also 
possible that the fix belongs in puppet.

By the way, this isn't the first time that we've seen bugs involving hanging 
reads in ruby.  I wonder if anything in bug #1963 could be relevant to finding 
a better solution to bug #662.
----------------------------------------
Bug #2731: mount on linux does not recognize errror code 32 meaning already 
mounted
http://projects.reductivelabs.com/issues/2731

Author: Jonathan Stanton
Status: Investigating
Priority: Normal
Assigned to: 
Category: mount
Target version: 
Affected version: 0.24.8
Keywords: 
Branch: 


On a Centos 5.3 system with NFS mounting home directories, every time puppet 
runs it tries to update the status of the nfs mount from "present" to "mounted" 
but fails because the call to mount returns -32 not 0. But as documented on the 
man page -32 means 'already mounted' and so should be treated as success. Here 
is the logged message from puppetd.
<pre>
Oct 16 10:28:07 savage-file puppetd[11739]: 
(//Node[savage-file.livetimenet.com]/nfs_moose_client/Mount[/mnt/moose_home]/ensure)
 change from present to mounted failed: Execution of '/bin/mount -o rw,async 
/mnt/moose_home' returned 32: 
</pre>
This has been going on for awhile (certainly back several versions of puppet) 
and I've tried some ideas with restarting it, and letting puppet do the 
original mount instead of the OS mounting it directly. 


-- 
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.


Reply via email to