Issue #11563 has been updated by Josh Cooper.
Thanks Rob. The issue is that when puppet executes the exec resource, it creates a tempfile to write the child process' stdout, creates the process, waits for it to exit, and then closes & unlinks the tempfile. Normally, exec resources run synchronously, so that if the child process fails, puppet will stop applying the catalog. However, if an exec resource runs asynchronously, e.g. as happens when using `start notepad.exe` without the `/wait` flag, then the child process still has a handle to the file when the parent tries to unlink it. On POSIX systems, this works fine. On Windows it does not. This is a bug in puppet in that it should gracefully handle when the tempfile can't be unlinked. With that said, I think this is a different issue than this bug (there have been a number of different issues here). I'll file a new bug to address the tempfile unlinking issue, and link it to this one. ---------------------------------------- Bug #11563: Puppet on Windows can drop access control entries if the mode is not specified https://projects.puppetlabs.com/issues/11563#change-64782 Author: Feifei Jia Status: Accepted Priority: Normal Assignee: Josh Cooper Category: windows Target version: 2.7.x Affected Puppet version: 2.7.12 Keywords: windows file mode permissions Branch: I've tested Puppet client in Windows 2008 recently, on EC2 instance. One problem I found is that, after I a first time successfully run, I encountered "CreateProcess() failed" error: <pre> info: Caching catalog for ip-xxxxxxxx.ec2.internal info: Applying configuration version '1324881415' err: /Stage[main]//Node[ip-xxxxxxxx.ec2.internal]/Foo::Set_role[chrome]/File [c:\download\setup_env.bat]: Could not evaluate: CreateProcess() failed: The system cannot find the file specified. notice: /Stage[main]//Node[ip-xxxxxxxx.ec2.internal]/Foo::Set_role[chrome]/E xec[setup_env.bat]: Dependency File[c:\download\setup_env.bat] has failures: tru e warning: /Stage[main]//Node[ip-xxxxxxxx.ec2.internal]/Foo::Set_role[chrome]/ Exec[setup_env.bat]: Skipping because of failed dependencies </pre> Related manifests: <pre> class foo { define set_role ($role) { file { 'c:\download\setup_env.bat': ensure => file, provider => windows, content => template("foo/setup_env.bat.erb"), } exec { 'setup_env.bat': cwd => 'c:\download', path => 'c:\download;%PATH%', provider => windows, require => File['c:\download\setup_env.bat'], } } } </pre> When I remove c:\download\setup_env.bat file, I can retrieve this file from Puppet master, and execute well. Puppet 2.7.9 Facter 1.6.4 Windows 2008 Datacenter SP2 Any hints? -- 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.
