Issue #9671 has been updated by Jacob Helwig.

Status changed from In Topic Branch Pending Review to Merged - Pending Release
Target version changed from 2.7.x to 2.7.7

Merged into 2.7.x in commit:ad16096f97a546b8a12ed1f5230d2f78de6a0064 and 2.7rc 
in commit:323a1979be6273e2ff2c1ba7c844ce83f83953a4
----------------------------------------
Bug #9671: transaction eval_generate slow on many files in recurse managed 
directory
https://projects.puppetlabs.com/issues/9671

Author: Simon Effenberg
Status: Merged - Pending Release
Priority: High
Assignee: Josh Cooper
Category: file
Target version: 2.7.7
Affected Puppet version: 2.7.0
Keywords: transaction file recurse
Branch: 


Since 2.7 (jump from 2.6.2 to 2.7.3) a file resource for a directory with many 
files in it is really really too slow.

<pre>
  file { "/var/www/munin":
    ensure  => directory,
    owner   => munin,
    group   => munin,
    mode    => 644,
    recurse => true,
    require => [
      Class['munin::master'],
    ]
  }
</pre>

In the directory there are ~19000 files and in the 
/usr/lib/ruby/1.8/transaction.rb in lines 171-174:

<pre>
    made.each do |res|
      add_conditional_directed_dependency(made.find { |r| r != res && r.name == 
res.name[0,r.name.length]} || resource, res)
      add_conditional_directed_dependency(res, sentinal, default_label)
    end
</pre>

the first add_conditional_directed_dependency needs a time between 0.2 and 1.5s 
which is, let's say an avg (it is growing over the time) of 0.4s and this 
*19000 files means, that the resource needs >2h... maybe this is not changeable 
but i wants to know if i have to remove the recurse => true for this or if this 
is a "bug"


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