[rt-users] Slow Response Time when Email involved
Kevin Squire
gentgeen at wikiak.org
Fri Nov 4 16:56:49 EDT 2011
Sorry to reply to my own... but since it was after work hours, I
commented out the section that I thought was slowing things down:
# unless ( close $mail ) {
# die "close pipe failed: $!" if $!; # system error
# sendmail exit statuses mostly errors with data not software
# TODO: status parsing: core dump, exit on signal or EX_*
# my $msg = "$msgid: `$path $args` exitted with code ". ($?>>8);
# $msg = ", interrupted by signal ". ($?&127) if $?&127;
# $RT::Logger->error( $msg );
# }
Well all that did was move the perceived slowdown. Now it seems to be
between 11-0-4 and 11-1 (but only thing there is a } ) ... So I am
even more confused now what the problem might be.
On Fri, 4 Nov 2011 16:36:46 -0400
Kevin Squire <gentgeen at wikiak.org> wrote:
> We have been using RT for a long time now (3 or 4 years?) and have had
> great success. Starting sometime in Aug, we found that there was a
> LARGE delay when ever updating a ticket in ANY way that would include
> sending emails. Since it was also that start of the school year, we
> just assumed 'beginning of year' load issues. Well the problem is
> still there.
>
> Anytime an email has to go out, there is exactly a 12 second delay in
> the logs. This then causes the page load to be greater then 12
> seconds. It does not seem to matter what time of day, or if the email
> includes attachments, etc.
>
> So I went through the code, pretty much line by line, adding comments
> to try and narrow down WHERE the delay is, but now I am stuck.
>
> I have edited both
> $RT_INSTALL/lib/RT/Action/SendEmail.pm and
> $RT_INSTALL/lib/RT/Interface/Email.pm
>
> SendEmail.pm now has "Ticker #" and Email.pm has "Ticker 1#"
>
> Here are my logs:
> Nov 4 16:09:16 outrigger RT:
> <rt-3.8.8-14121-1320437356-1460.35109-6-0 at pavcs.org> KDS Ticker 0 .
> (/usr/share/request-tracker3.8/lib/RT/Action/SendEmail.pm:306) Nov 4
> 16:09:16 outrigger RT: KDS Ticker 10
> (/usr/share/request-tracker3.8/lib/RT/Interface/Email.pm:396) Nov 4
> 16:09:16 outrigger RT: KDS Ticker 11
> (/usr/share/request-tracker3.8/lib/RT/Interface/Email.pm:402) Nov 4
> 16:09:16 outrigger RT: KDS Ticker 11-0
> (/usr/share/request-tracker3.8/lib/RT/Interface/Email.pm:445) Nov 4
> 16:09:16 outrigger RT: KDS Ticker 11-0-1
> (/usr/share/request-tracker3.8/lib/RT/Interface/Email.pm:449) Nov 4
> 16:09:16 outrigger RT: KDS Ticker 11-0-2
> (/usr/share/request-tracker3.8/lib/RT/Interface/Email.pm:451) Nov 4
> 16:09:16 outrigger RT: KDS Ticker 11-0-3
> (/usr/share/request-tracker3.8/lib/RT/Interface/Email.pm:455) Nov 4
> 16:09:28 outrigger RT: KDS Ticker 11-0-4
> (/usr/share/request-tracker3.8/lib/RT/Interface/Email.pm:464) Nov 4
> 16:09:28 outrigger RT: KDS Ticker 11-1
> (/usr/share/request-tracker3.8/lib/RT/Interface/Email.pm:466) Nov 4
> 16:09:28 outrigger RT:
> <rt-3.8.8-14121-1320437356-1460.35109-6-0 at pavcs.org> sent To:
> gentgeen at wikiak.org
> (/usr/share/request-tracker3.8/lib/RT/Action/SendEmail.pm:331)
>
>
> The 12 Second delay is between 11-0-3 and 11-0-4
>
> Here is my modified code (Email.pm):
>
>
> $RT::Logger->info( " KDS Ticker 11-0 " );
> eval {
> # don't ignore CHLD signal to get proper exit code
> local $SIG{'CHLD'} = 'DEFAULT';
> $RT::Logger->info( " KDS Ticker 11-0-1 " );
> open my $mail, "|$path $args" or die "couldn't execute
> program: $!"; $RT::Logger->info( " KDS Ticker 11-0-2 " );
> # if something wrong with $mail->print we will get PIPE
> signal, handle it local $SIG{'PIPE'} = sub { die "program unexpectedly
> closed pipe" }; $args{'Entity'}->print($mail);
> $RT::Logger->info( " KDS Ticker 11-0-3 " );
> unless ( close $mail ) {
> die "close pipe failed: $!" if $!; # system error
> # sendmail exit statuses mostly errors with data not
> software # TODO: status parsing: core dump, exit on signal or EX_*
> my $msg = "$msgid: `$path $args` exitted with code ".
> ($?>>8); $msg = ", interrupted by signal ". ($?&127) if $?&127;
> $RT::Logger->error( $msg );
> }
> $RT::Logger->info( " KDS Ticker 11-0-4 " );
> };
> $RT::Logger->info( " KDS Ticker 11-1 " );
>
>
> Can anyone PLEASE help me narrow this down ... I am just at a lost
> now. I just don't know enough Perl to understand what is going on or
> why the large delay right at:
>
> unless ( close $mail ) {
> die "close pipe failed: $!" if $!; # system error
> # sendmail exit statuses mostly errors with data not software
> # TODO: status parsing: core dump, exit on signal or EX_*
> my $msg = "$msgid: `$path $args` exitted with code ". ($?>>8);
> $msg = ", interrupted by signal ". ($?&127) if $?&127;
> $RT::Logger->error( $msg );
> }
>
>
--
http://www.wikiak.org
#############################################################
Associate yourself with men of good quality if you esteem
your own reputation; for 'tis better to be alone then in bad
company. - George Washington, Rules of Civility
More information about the rt-users
mailing list