Bug 1301103

Summary: goferd taking 100% CPU after successful reconnect to qdrouterd after a longer time
Product: Red Hat Satellite Reporter: Bryan Kearney <bkearney>
Component: Foreman ProxyAssignee: Katello Bug Bin <katello-bugs>
Status: CLOSED ERRATA QA Contact: Katello QA List <katello-qa-list>
Severity: high Docs Contact:
Priority: urgent    
Version: 6.1.5CC: adahms, ahuchcha, bkearney, cdonnell, chrobert, cwelton, ddevra, gabicr, hasingh, hklein, jentrena, katello-bugs, katello-qa-list, kgiusti, kshravag, mcressma, mmccune, mshimura, nmiao, peter.vreman, pierre-yves.goubet, pmoravec, rmahique, sghai, smeyer, sreber, wharris, xdmoon
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Previously, the Qpid proton reactor class did not abort internal pipes correctly when a connection was reset. During reconnect, the reactor thread occasionally entered an infinite loop, causing high CPU consumption. The internal pipes are now properly closed and the high CPU consumption no longer occurs on reconnect.
Story Points: ---
Clone Of: 1295957 Environment:
Last Closed: 2016-01-28 07:25:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1295957    
Bug Blocks: 1122832    

Comment 2 Sachin Ghai 2016-01-27 10:11:31 UTC
Verified with satellite 6.1.6 compose 7 (async errata).

I was able to reproduce the reported issue with:

]# rpm -qa | grep qpid-proton
qpid-proton-c-0.9-11.el7.x86_64
python-qpid-proton-0.9-11.el7.x86_64

---
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                           
28593 root      20   0 1535020  39796   9772 S 100.0  0.1   2:18.76 python 

root     28593     1  5 04:14 ?        00:00:40 python /usr/bin/goferd --foreground
---


Later, I tested with latest compose7 and with following packages:
[root@apollo ~]# rpm -qa | grep qpid
python-qpid-proton-0.9-12.el7sat.x86_64
qpid-proton-c-0.9-12.el7sat.x86_64


And this time I don't see any process like python/goferd consuming more that 100% CPU on re-connection to qdrouterd. here is the result after fix:


  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                           
14834 root      20   0 1939924  46960  10328 S   0.7  0.6   0:07.83 python  

root     14834     1  0 04:03 ?        00:00:07 python /usr/bin/goferd --foreground


Please note that I've done this testing against Satellite/capsule installed on rhel7.

Comment 3 Sachin Ghai 2016-01-27 13:17:50 UTC
Moving this bz to verified as per comment2. The other clients (rhel6, rhel5.11) tests can be covered in other bz 1295957

Comment 5 errata-xmlrpc 2016-01-28 07:25:41 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2016:0076