Calling log_halt causes 500 internal server error on foreman proxy
I found this error when provisioning staypuft hosts, in foreman log I saw only
Remove puppet certificate for mac5254001adcc9.example.comand even after I set debug log level on foreman proxy I saw messages like
D, [2014-09-30T08:27:55.252242 #21635] DEBUG -- : Found puppetca at /usr/sbin/puppetca D, [2014-09-30T08:27:55.252348 #21635] DEBUG -- : Found sudo at /usr/bin/sudo D, [2014-09-30T08:27:55.252381 #21635] DEBUG -- : Executing /usr/bin/sudo -S /usr/sbin/puppetca --ssldir /var/lib/puppet/ssl --clean mac5254001adcc9.example.com I, [2014-09-30T08:27:55.959318 #21635] INFO -- : Attempt to remove nonexistant client certificate for mac5254001adcc9.example.comwith no error. It turned out that foreman proxy fails while using log_halt in ProxyHelpers module because it was unable to use logger. This resulted in RestClient exception in foreman which backtrace is swallowed.
While the fix for the issue with puppetca is trivial, it was hard to debug. I wonder whether we should create refactoring issue to review all rescue and never swallow backtrace, plus second to revisit smart proxy logging (so every exception is logged)