Issue #13259 has been updated by Tim Bishop.

Affected Puppet version deleted (2.7.12rc2)

I've done some tests on another FreeBSD machine running Puppet 2.7.10. It has 
the same versions of augeas and the ruby library.

On that machine it functioned correctly. So it would appear to be a regression 
between 2.7.10 and 2.7.12.
----------------------------------------
Bug #13259: Augeas error: Could not evaluate: No such file or directory
https://projects.puppetlabs.com/issues/13259#change-57706

Author: Tim Bishop
Status: Unreviewed
Priority: Normal
Assignee: 
Category: augeas
Target version: 
Affected Puppet version: 
Keywords: Augeas FreeBSD
Branch: 


I have a problem with Puppet on FreeBSD (I haven't confirmed if the issue is 
repeatable on another OS). The relevant software versions are:

 * puppet-2.7.12
 * augeas-0.10.0
 * rubygem-ruby-augeas-0.4.1

My test manifest is:

<pre>
augeas { '/etc/ssh/sshd_config':
  context => '/files/etc/ssh/sshd_config',
  changes => [
    "set Port 2222",
    "set PermitRootLogin no",
  ],
}
</pre>

And I apply this as follows, with debugging enabled:

<pre>
# puppet apply -v -d augtest.pp
...
debug: Augeas[/etc/ssh/sshd_config](provider=augeas): Opening augeas with root 
/, lens path , flags 0
debug: Augeas[/etc/ssh/sshd_config](provider=augeas): Augeas version 0.10.0 is 
installed
debug: Augeas[/etc/ssh/sshd_config](provider=augeas): Will attempt to save and 
only run if files changed
debug: Augeas[/etc/ssh/sshd_config](provider=augeas): sending command 'set' 
with params ["/files/etc/ssh/sshd_config/Port", "2222"]
debug: Augeas[/etc/ssh/sshd_config](provider=augeas): sending command 'set' 
with params ["/files/etc/ssh/sshd_config/PermitRootLogin", "no"]
notice: Augeas[/etc/ssh/sshd_config](provider=augeas): saved_file: 
/etc/ssh/sshd_config
notice: Augeas[/etc/ssh/sshd_config](provider=augeas): saved_file: 
/etc/ssh/sshd_config
err: /Stage[main]//Augeas[/etc/ssh/sshd_config]: Could not evaluate: No such 
file or directory - /etc/ssh/sshd_config.augnew
...
</pre>

There's two additional lines there. I added the following to the augeas 
provider:

<pre>
--- augeas.rb.orig      2012-03-20 20:01:57.000000000 +0000
+++ augeas.rb   2012-03-20 20:02:28.000000000 +0000
@@ -297,10 +297,11 @@
           saved_files = @aug.match("/augeas/events/saved")
           if saved_files.size > 0
             root = resource[:root].sub(/^\/$/, "")
             saved_files.each do |key|
               saved_file = @aug.get(key).sub(/^\/files/, root)
+              notice("saved_file: " + saved_file)
               if Puppet[:show_diff]
                 notice "\n" + diff(saved_file, saved_file + ".augnew")
               end
               File.delete(saved_file + ".augnew")
             end
</pre>

So the reason for the problem is that Puppet does a diff of the file, removes 
it, and then attempts to diff it again. The root cause is unknown, but it's 
obviously not right that the file appears twice in saved_files.

Issue #13204 offers a fix, but it feels like it's masking the underlying issue. 
I've tried it, and not surprisingly the fix works.

I'm happy to help debug this where I can.


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