Issue #5318 has been updated by Daniel Pittman.
Further details: after thinking for a while, and checking the documentation, it has become clear why this problem is only evident under Passenger, and not under Webrick and similar servers. It circles around the thread cache, and the way these servers handle requests. Specifically, Passenger doesn't do threads, so every HTTP request lands in the same Ruby (green) thread. This means that the cache problem would manifest: because we used the same thread for multiple requests, the bad cache flush was exposed, and we did the wrong thing. Webrick, and the other application servers we tested, are threaded. Specifically, they create a new thread for the request no matter what. This disguised the caching bug around the threads, both when running on small scale in production, and during our testing where we almost exclusively use the Webrick or Morgrel servers. So, this was a constant bug, but was disguised by the runtime environment in most circumstances, leading to it appearing to be Passenger related. ---------------------------------------- Bug #5318: puppet master behind passenger does not re-parse manifests correctly when running with default environment. https://projects.puppetlabs.com/issues/5318 Author: Dan Bode Status: Accepted Priority: Urgent Assignee: Category: compiler Target version: 2.6.x Affected Puppet version: Keywords: Branch: When running puppet behind passenger <ul> <li>apache - 2.2.3 <li>puppet 2.6.3 <li>rack 1.1.0 <li>passenger - 2.2.11 <li>centos 5.4 <li>ruby 1.8.5 </ul> <b>site.pp</b> <pre> node default { file { '/tmp/two/three': content => 'blah', mode => '661', } } </pre> when I change the mode of the file resource, I have to run the client twice for it to detect the change. after changing the manifest, do the dishes, run pupppet: <pre> puppetd -t info: Loading facts in certname info: Loading facts in certname info: Caching catalog for puppetclient info: Applying configuration version '1289885403' notice: Finished catalog run in 0.20 seconds [root@puppetmaster templates]# puppetd -t info: Loading facts in certname info: Loading facts in certname info: Caching catalog for puppetclient info: Applying configuration version '1289886035' notice: /Stage[main]//Node[default]/File[/tmp/two/three]/mode: mode changed '664' to '661' notice: Finished catalog run in 0.20 seconds </pre> I could not reproduce with edp. If I turn off apache and turn the puppetmaster service on (webbrick), this issue goes away. -- 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.
