Googling around a little, I found this old thread:
https://groups.google.com/forum/#!topic/puppet-users/8GzIjCxfntQ, which relates to a similar execution expired problem, and whose author traces it back to
a purported problem with the Ruby gtk2 module interfering with reading from sysfs. It doesn't sound so likely that you would be loading gtk2 specifically, but it is entirely plausible that evaluating the LVM facts might involve reading from sysfs, and that Ruby modules other than gtk2 might also cause such trouble. It is also plausible that the problem might disappear after one Puppet run as a result of some key package being updated.
I'm afraid that's not very solid, but it
is testable. For example, provision a fresh machine as you normally do, up to, but not including the point where you perform the first Puppet run. Run Puppet in
--noop mode to try to observe the error without applying any changes. Even in noop mode, the agent should still issue a CSR, perform pluginsync, and load facts. If the error is inconsistent then you may need to make multiple tries, or otherwise try different initial provisioning -- I'm sure you get the idea. If this problem is associated with the clean-from-provisioning state of your machines, then you should not only be able to reproduce it this way, but probably you should also be able to reproduce it multiple times with the same machine, as long as the agent runs in noop mode. If you can in fact establish that, then from there it's probably a question of determining which package update or configuration change makes the problem go away.
John