Earlier this week I did a portsupgrade(8)
on my FreeBSD puppetmaster. After the upgrade was completed, puppet stopped working and was displaying these errors:
err: /File[/var/puppet/lib]: Failed to generate additional resources using ‘eval_generate’: No format match the given format name or mime-type (text/html)
err: /File[/var/puppet/lib]: Could not evaluate: No format match the given format name or mime-type (text/html) Could not retrieve file metadata for puppet://puppet.home.pirzyk.org/plugins: No format match the given format name or mime-type (text/html)
…
err: Could not retrieve catalog from remote server: No format match the given format name or mime-type (text/html)
After spending a few hours on this problem I decided to point my web browser at https://puppet.home.pirzyk.org:8140 and I saw this strange page:
Load Balancer Manager for puppet.home.pirzyk.org
- Server Version: Apache/X.X.X (FreeBSD) DAV/2 PHP/X.X.X with Suhosin-Patch SVN/X.X.X mod_ssl/X.X.X OpenSSL/X.X.X
- Server Built: Nov 1 2011 XX:XX:XX
LoadBalancer Status for balancer://puppetmaster
StickySession Timeout FailoverAttempts Method – 0 3 byrequests
Worker URL Route RouteRedir Factor Set Status Elected To From http://127.0.0.1:18140 1 0 Ok 1 558 115 http://127.0.0.1:18141 1 0 Ok 0 0 0 http://127.0.0.1:18142 1 0 Ok 0 0 0 http://127.0.0.1:18143 1 0 Ok 0 0 0
LoadBalancer Status for balancer://puppetmaster
StickySession Timeout FailoverAttempts Method – 0 0 byrequests
Worker URL Route RouteRedir Factor Set Status Elected To From
This page was showing up for every URL on the site, not just the root page. I hunted around for the documentation about setting up the balancer manager and found this Apache page for mod_proxy_balancer. They document the balancer-manager section to look like this:
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from .example.com
But PuppetLabs’ mongrel configuration was documented as:
SetHandler balancer-manager
Order allow,deny
Allow from all
There was the difference, Location was / in the puppet docs instead of /balancer-manager, as in the Apache docs. Puppet was happy again once I made this change. Not sure what update caused the problem; the only related package updated was php.