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.
