Comment 14 for bug 986973

Revision history for this message
Shane Meyers (shanemeyers) wrote :

Installing the patched version of memory.rb from https://github.com/puppetlabs/facter/commit/9ff4453b2f0843df887ae1ec2098a4336291df0c helped reduce the number of puppet hangs that we experience, but we were still getting hung processes. Attaching strace to a "hung" puppet process showed a constant output of the following lines repeated:

31024 futex(0x7f96be6ed5b0, FUTEX_WAKE_PRIVATE, 1) = 0
31024 futex(0x7f96be6ed584, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 231453, {1371588406, 113327589}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
31024 clock_gettime(CLOCK_REALTIME, {1371588406, 113578908}) = 0
31024 futex(0x7f96be6ed5b0, FUTEX_WAKE_PRIVATE, 1) = 0
31024 futex(0x7f96be6ed584, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 231455, {1371588406, 123578908}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
31024 clock_gettime(CLOCK_REALTIME, {1371588406, 123789011}) = 0

It turns out that puppet isn't actually hung, but is waiting forever for the futex() call to stop timing out.

Once I copied in the patched processor.rb from the same git changeset linked above, the hang problem stopped occurring for us. So from my perspective, both memory.pp and processor.rb need to be patched in the puppet 1.6.5 (precise) package.