Rt-mailgate broken pipe

Hi All,

Here’s hoping someone can shed some light on this one for me, I’ve been
knocking my head against this wall for days now.

Messages piped through rt-mailgate fail when they’re beyond a certain
size. I haven’t yet figured out exactly what said size is, and it seems
to be variable.

Preliminary tests with one of the broken messages showed it was dying
with “broken pipe” before even getting into it’s error checking routine.

I hacked up a test rt-mailgate and added a local $SIG{‘PIPE’} = 'IGNORE’
before the POST and have been playing with returning the response from
the server.

Running -

./rt-mailgate --queue support --action comment --url
https://ticket.example.com/ -debug < 523198

Returns:

An Error Occurred

500 write failed:
This is ./rt-mailgate exiting because of an undefined server error at
./rt-mailgate line 457, <> chunk 1.

The message’s delivery is then deferred by Qmail, and it tries and tries
and tries again.

The first X number of bytes seem to actually make it into the queue. I
haven’t been able to pinpoint X yet - seems to vary.

I’m hoping someone can cast some light my way.

At the very least, the source maintainers may wish to consider adding
$SIG{‘PIPE’} handling prior to the LWP POST call, as a broken pipe will
prevent the graceful error-handling code from ever being executed.
(Seems like this mechanism should be in LWP by default, but I guess it’s
not.)

Many thanks.

Mick

Messages piped through rt-mailgate fail when they’re beyond a certain
size. I haven’t yet figured out exactly what said size is, and it seems
to be variable.

Size is 8192 bytes, and it’s definitely mod_perl’s fault. Test script
running under:

Sethandler cgi-script

works just peachy, and returns the entire posted message. Same script
under:

SetHandler perl-script
PerlHandler ModPerl::Registry::handler

Displays that it gets $ENV{‘content-length’} but shows it no regard,
returns only 8192 bytes.

I know that this suggests that I shouldn’t be asking about it in an RT
support group, but I’m mentioning it in case anyone else has run into it
and come up with a solution.

Apache 2.0.40
mod_perl 1.99
Perl 5.8.0
Redhat 9

Thanks,

Mick

Messages piped through rt-mailgate fail when they’re beyond a certain
size. I haven’t yet figured out exactly what said size is, and it seems
to be variable.

Size is 8192 bytes, and it’s definitely mod_perl’s fault. Test script
running under:

Sethandler cgi-script

works just peachy, and returns the entire posted message. Same script
under:

SetHandler perl-script
PerlHandler ModPerl::Registry::handler

Displays that it gets $ENV{‘content-length’} but shows it no regard,
returns only 8192 bytes.

I know that this suggests that I shouldn’t be asking about it in an RT
support group, but I’m mentioning it in case anyone else has run into it
and come up with a solution.

Can you back down to apache 1.3, which is generally known not to suck?

Apache 2.0.40
mod_perl 1.99
Perl 5.8.0
Redhat 9

Thanks,

Mick


rt-users mailing list
rt-users@lists.fsck.com
http://lists.fsck.com/mailman/listinfo/rt-users

Have you read the FAQ? The RT FAQ Manager lives at http://fsck.com/rtfm

http://www.bestpractical.com/rt – Trouble Ticketing. Free.

Can you back down to apache 1.3, which is generally known not to suck?

Good idea. I think I’ll do that.

I asked a similar question on a mod_perl mailing list and was told that
this issue had been fixed in mod_perl-1.99_09 (_07 is the broken one
that ships with Redhat 9.)

Any other Redhat 9 stock-install users seeing weird behaviour like this?

Thanks for your help.

Mick