Issue #16327 has been updated by Daniel Pittman. Status changed from Investigating to Needs More Information
This should be "impossible": one of the design assumptions of Puppet is that the indirector facts "cache" is something local, like "yaml", and the "terminus" is the "inventory_service". That leads to two bits of behaviour: On save, write to the local disk, and then submit to the inventory service. Both get the data, unless the HTTP request fails, in which case Puppet continues and ignores the submission problem. On read, though, the cache will always find the data on local disk, so will never consult the HTTP service. In order for us to see the error you list you have one of two conditions: 1. You have configured the facts indirection with no cache, or a non-local cache. 2. You have managed to delete the local cache between the save and the find. Can you identify which, if either, of those is true? ---------------------------------------- Bug #16327: Fact Terminus inventory_service not failing gracefully as intended https://projects.puppetlabs.com/issues/16327#change-71029 Author: Shane Madden Status: Needs More Information Priority: Normal Assignee: Category: Target version: 3.0.0 Affected Puppet version: 3.0.0-rc5 Keywords: Branch: The inventory_service fact terminus was created for bug #10289, to allow for the updating of facts in a central inventory service while avoiding the single point of failure behavior that occurs for the rest terminus when the inventory server is down or misbehaving. In 2.7.x, the failure is graceful, throwing a warning on the master that is attempting attempting to send facts to the terminus: warning: Could not upload facts for node.example.com to inventory service: Connection refused - connect(2) But in 3.0.0rc5, a failure occurs and the agent's run fails: Error: Could not retrieve facts for node.example.com: Connection refused - connect(2) /usr/lib/ruby/1.8/net/http.rb:560 /usr/lib/ruby/1.8/net/http.rb:560 /usr/lib/ruby/1.8/net/http.rb:560 /usr/lib/ruby/1.8/timeout.rb:67 /usr/lib/ruby/1.8/timeout.rb:101 /usr/lib/ruby/1.8/net/http.rb:560 /usr/lib/ruby/1.8/net/http.rb:553 /usr/lib/ruby/1.8/net/http.rb:542 /usr/lib/ruby/1.8/net/http.rb:1035 /usr/lib/ruby/1.8/net/http.rb:772 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/connection.rb:61 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/connection.rb:61 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/connection.rb:25 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:105 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:105 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:84 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:118 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:177 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/request.rb:216 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:177 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:112 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:191 /usr/lib/ruby/site_ruby/1.8/puppet/node.rb:87 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/node/plain.rb:17 /usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:191 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:105 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:68 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:68 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick/rest.rb:24 /usr/lib/ruby/1.8/webrick/httpserver.rb:104 /usr/lib/ruby/1.8/webrick/httpserver.rb:65 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:36 /usr/lib/ruby/1.8/webrick/server.rb:173 /usr/lib/ruby/1.8/webrick/server.rb:173 /usr/lib/ruby/1.8/webrick/server.rb:162 /usr/lib/ruby/1.8/webrick/server.rb:162 /usr/lib/ruby/1.8/webrick/server.rb:95 /usr/lib/ruby/1.8/webrick/server.rb:92 /usr/lib/ruby/1.8/webrick/server.rb:92 /usr/lib/ruby/1.8/webrick/server.rb:23 /usr/lib/ruby/1.8/webrick/server.rb:82 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:33 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:32 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:32 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:32 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:29 /usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:29 /usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:96 /usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:112 /usr/lib/ruby/site_ruby/1.8/puppet/daemon.rb:136 /usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:199 /usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:148 /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:342 /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:436 /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:342 /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:513 /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:342 /usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:76 /usr/bin/puppet:10 Looks like the find method needs to get the same graceful handling treatment that the save method is getting in indirector/facts/inventory_service.rb. Thanks! -- 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.
