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.

Reply via email to