Bug #9953
closedDynflow comsumes CPU with no tasks executing
Description
On my RHEL6 based VM running the latest nightly build of Katello I noticed that the dynflow process was consuming lots of CPU:
top - 14:25:03 up 3:56, 1 user, load average: 1.09, 1.12, 1.28
Tasks: 129 total, 2 running, 127 sleeping, 0 stopped, 0 zombie
Cpu(s): 84.2%us, 15.8%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si,
Mem: 7865288k total, 7257996k used, 607292k free, 201936k buffers
Swap: 2097144k total, 0k used, 2097144k free, 4675568k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2466 foreman 20 0 485m 104m 1144 R 97.5 1.4 24:44.50 ruby
1883 tomcat 20 0 2968m 266m 12m S 1.0 3.5 0:44.53 java
...
running strace on the process yields pages and pages of:
stat("/usr/share/foreman/tmp/pids/dynflow_executor.pid", {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
open("/usr/share/foreman/tmp/pids/dynflow_executor.pid", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
fstat(5, {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
ioctl(5, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffc1de3b50) = -1 ENOTTY (Inappropriate ioctl for device)
read(5, "2566\n", 8192) = 5
close(5) = 0
kill(2566, SIG_0) = 0
stat("/usr/share/foreman/tmp/pids/dynflow_executor.pid", {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
open("/usr/share/foreman/tmp/pids/dynflow_executor.pid", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
fstat(5, {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
ioctl(5, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffc1de3b50) = -1 ENOTTY (Inappropriate ioctl for device)
read(5, "2566\n", 8192) = 5
close(5) = 0
kill(2566, SIG_0) = 0
stat("/usr/share/foreman/tmp/pids/dynflow_executor.pid", {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
...