Bug 967694

Summary: jobqueue.pl stalls
Product: [Community] Bugzilla Reporter: Mark Keir <mkeir>
Component: PerformanceAssignee: Simon Green <sgreen>
Status: CLOSED NOTABUG QA Contact: tools-bugs <tools-bugs>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.4CC: ebaak, rjoost
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-05-30 00:24:44 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:

Description Mark Keir 2013-05-28 04:46:03 UTC
Description of problem:

When the "bugzilla-queue" service runs, the jobqueue.pl process stalls sometimes and does not recover.  Email notifications then backlog unless the service is constantly restarted.

Version-Release number of selected component (if applicable):


How reproducible:

"service bugzilla-queue start"

Steps to Reproduce:
1.  Start service
2.  Watch /var/log/messages for emails being sent and observe if an email takes a long time to be processed (>1 min), assuming a backlog of queued messages.
3.  Watch top to see jobqueue.pl memory use go from 250Mb virtual memory and 5% CPU to 600Mb (up to 1.3Gb) virtual memory and 100% CPU consumption
4. restart the service to see it happen again 

Actual results:

jobqueue.pl process spins at 100% and sendmail connection being written to does not complete and exit with the service stalling.

Expected results:

When well behaved, the jobqueue.pl process consumes a modest amount of RAM and CPU, processing each email batch within a second or so.

Additional info:

Without constant attention can lead to >15K backlogged emails.

Comment 1 Simon Green 2013-05-30 00:24:44 UTC
I think Email::Send was choking on the very large (30MB+) e-mails. Changing this to use Sendmail, and not generating 30MB e-mails seems to have solved this problem.