Issue #2516 has been updated by Brice Figureau.
Christian Hofstaedtler wrote: > I'm not seeing this; also I'm not seeing a text/plain mimetype when my client > starts up. (I also don't see any code which would produce a text/plain > mimetype *with* a charset set.) > > John, how are you starting your client? Do you have any manifests already? > > Also, can you make sure that your server isn't spitting out anything else > over http (i.e. error messages or something)? I debugged this on #puppet with dsch04 two days ago. If you have a CharsetDefault UTF8 in your apache configuration then Apache happily adds a charset information if none was transmitted. So yes we need Puppet to be more resilient in this case, but the root cause is still Apache that does more than we asked it to do. Christian: do you want to fix this issue, or should I take over the bug? ---------------------------------------- Bug #2516: Client startup failure with 0.25.0rc1/Passenger http://projects.reductivelabs.com/issues/2516 Author: John A. Barbuto Status: Accepted Priority: Normal Assigned to: Christian Hofstaedtler Category: Target version: 0.25.0 Complexity: Unknown Affected version: 0.25.0rc1 Keywords: My freshly installed 0.25.0rc1 client running against a 0.25.0rc1/Passenger2.2.2 server was terminating silently after startup. Doing an strace of puppetd turned up this error: <pre> /usr/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:89:in `format_to_canonical_name' undefined method `name' for nil:NilClass NoMethodError from /usr/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:68:in `protected_format' from /usr/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:99:in `convert_from' from /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:48:in `deserialize' from /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:67:in `find' from /usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:198:in `find' from /usr/lib/ruby/site_ruby/1.8/puppet/indirector.rb:51:in `find' from /usr/lib/ruby/site_ruby/1.8/puppet/ssl/host.rb:174:in `certificate' from /usr/lib/ruby/site_ruby/1.8/puppet/ssl/host.rb:238:in `wait_for_cert' from /usr/lib/ruby/site_ruby/1.8/puppet/application/puppetd.rb:243:in `run_setup' from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:216:in `run' from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:306:in `exit_on_fail' from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:216:in `run' from /usr/sbin/puppetd:159 </pre> This wasn't happening with WEBrick, so I added some debugging output on the client to try to discern the difference, in this spot: http://github.com/reductivelabs/puppet/blob/1e83aadc749aea9d52281d4f4041f6144a7229c7/lib/puppet/network/format_handler.rb#L79 At the time the client failed with Passenger, the @format@ variable was _"text/plain; charset=UTF-8"_, but when it worked with WEBrick, it was just _"text/plain"_. I suspected the charset was the problem, so I removed it with this patch: <pre> --- a/lib/puppet/network/format_handler.rb +++ b/lib/puppet/network/format_handler.rb @@ -59,6 +59,8 @@ module Puppet::Network::FormatHandler # Return a format capable of handling the provided mime type. def self.mime(mimetype) mimetype = mimetype.to_s.downcase + # we only want the mime type, not the charset or anything else + mimetype = mimetype.split(';')[0] @formats.values.find { |format| format.mime == mimetype } end </pre> This indeed fixed the problem. Please consider this fix for us Passenger users. :) Also, I may be wrong, but you might want to patch this empty @when@ statement here: <pre> --- a/lib/puppet/network/format_handler.rb +++ b/lib/puppet/network/format_handler.rb @@ -81,7 +83,7 @@ module Puppet::Network::FormatHandler out = format when %r{\w+/\w+} out = mime(format) - when + else out = format(format) end out.name </pre> -- 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://reductivelabs.com/redmine/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 -~----------~----~----~----~------~----~------~--~---
