← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1834072] Re: Puppet agent using 100% CPU, in sched_yield() loop. Looks like an issue with ruby2.3 which has been fixed but not yet made it into Ubuntu.

 

This bug was fixed in the package ruby2.3 - 2.3.1-2~ubuntu16.04.13

---------------
ruby2.3 (2.3.1-2~ubuntu16.04.13) xenial; urgency=medium

  * d/p/do-not-wakeup-inside-child-processes.patch: avoid child ruby processes
    being stuck in a busy loop (LP: #1834072)

 -- Andreas Hasenack <andreas@xxxxxxxxxxxxx>  Tue, 25 Jun 2019 11:52:54
-0300

** Changed in: ruby2.3 (Ubuntu Xenial)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1834072

Title:
  Puppet agent using 100% CPU, in sched_yield() loop.  Looks like an
  issue with ruby2.3 which has been fixed but not yet made it into
  Ubuntu.

Status in ruby2.3 source package in Xenial:
  Fix Released
Status in ruby2.3 package in Debian:
  Fix Released

Bug description:
  [Impact]

  Ruby processes can sometimes get stuck in a loop consuming 100% CPU,
  as described upstream and in the debian bug report. It has most
  commonly been seen in the puppet agent.

  [Test Case]
  It's not easy to reproduce. It has been suggested that this script eventually reproduces the problem:

  while nice -n19 /opt/puppetlabs/puppet/bin/ruby sched_yield_loop.rb;
  do :; done

  Where sched_yield_loop.rb comes from "https://bugs.debian.org/cgi-
  bin/bugreport.cgi?att=1;bug=876377;filename=sched_yield_loop.rb;msg=22"

  I personally haven't seen it happen with the script, but maybe it
  could take days.

  [Regression Potential]
  Races with threads can be hard to reproduce, and so can regressions.
  Patch has been applied upstream and to debian for more than a year now.

  [Other Info]
  Bionic has ruby 2.5.1 and it has this fix already, as do all later ubuntu releaes.

  [Original Description]

  Ubuntu 16.04
  ruby 2.3.1-2~16.04.12
  kernel 4.4.0-148-generic

  We've noticed an issue across multiple servers where puppet agent will
  seem to get stuck and consume 100% CPU for days or weeks on end until
  manually killed.

  root@ps-prod-jenkins-qa-ui02:~# ps auxwwww|grep -i puppe[t]
  root       1412  0.0  0.2 143716 38680 ?        Ssl  Jun11   0:39 /usr/bin/ruby /usr/bin/puppet agent
  root      34884 74.4  0.3 286848 53724 ?        Rs   Jun23 1141:44 puppet agent: applying configuration
  root     111481 94.1  0.3 288572 54996 ?        Rs   Jun18 8642:32 puppet agent: applying configuration
  root     128479 54.8  0.3 286744 53596 ?        Rs   10:30 250:17 puppet agent: applying configuration

  Strace shows it in a sched_yield() loop:

  root@ps-prod-jenkins-qa-ui02:~# strace -p 34884 -c
  strace: Process 34884 attached
  ^Cstrace: Process 34884 detached
  % time     seconds  usecs/call     calls    errors syscall
  ------ ----------- ----------- --------- --------- ----------------
  100.00    0.002130           0    123189           sched_yield
  ------ ----------- ----------- --------- --------- ----------------
  100.00    0.002130                123189           total

  Some googling shows this is a common issue which was supposedly
  fixed/backported to ruby 2.3:

  https://tickets.puppetlabs.com/browse/PA-1743
  https://bugs.ruby-lang.org/issues/13794
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876377

  The following open Ubuntu bugs look to be having the same issue and
  suggest that this fix made it into Debian but never made it into
  Ubuntu:

  https://bugs.launchpad.net/ubuntu/+source/pcs/+bug/1783161
  https://bugs.launchpad.net/ubuntu/+source/pcs/+bug/1772998

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/xenial/+source/ruby2.3/+bug/1834072/+subscriptions