| After some digging around on versions 5.5 21, 6.13.0, 6.14.0 and the newly released 6.20.0, only 6.14.0 did some things different. On 6.14.0, when a server failed midrun, the current running part would fail (like Retrieving pluginfacts, or Retrieving facts) and the code would continue to the next part(Retrieving locales) where it would check again for an available server, choosing the next functional server from server_list. I think this is not the intended functionality, as it could cause some sort of mix between catalogs from different servers.
I think the current implementation is ok, where if a part of the execution would fail, puppet should not try to recover on the same run. The next run should select the next available functional server, and use it for the rest of the run. If puppet were to recover from a server connection error, I think it would be best to retry the whole run, as I had some differences in the catalog when running puppet with puppetserver from a PE deployment, and running puppet with puppetserver from compiler node. I would say that 6.14.0 had a bug where it mixed puppetservers from server_list when a midrun failure occurred, and close this ticket as this no longer happens on versions > 6.15.0 where the first functional server is used throughout the puppet run. |