I agree there doesn't seem to be any obvious error in your code construction,
so I think there are a couple of
ways you could approach this problem:
* profile your application with Devel::NYTProf to see what areas of the code
are taking up so much time after
one of these checkpoint operations,
* From the "Worse is Better" world,
maybe you experimentally run the checkpoint POST from a shell using curl as in
system("/usr/bin/curl -s -H'HeaderThingy: True' -X POST $url");
and see if that avoids whatever problem you seem to be experiencing from
Perl-land.
One other area you could explore would be checking rt.cpan.org to see if there
are any bugs (and/or
patches) filed against the HTTPS support libs like IO::Socket::SSL or
Net::SSLeay for Ubuntu 12.
Mark
From: Tuc at T-B-O-H
To: libwww@perl.org
Sent: Thursday, September 20, 2012 7:52 AM
Subject: Re: Make a request, all subsequent are S-L-O-W
Hi,
Anyone?
Tuc
>
> Hi,
>
> Running 6.03 on Ubuntu 12.04 fairly patched up. (Within a month).
>
> Odd situation... I'm running hundreds of gets/posts in a single program
> which is running great. Every #X transactions I have to "checkpoint".
> Stupidly,
> and which I have no control over, this checkpoint is a POST... And it error
> 500's. I can't get the devs for love, money or scooby snacks to stop it from
> error 500ing. However, *EVERY TIME* the program checkpoints, all subsequent
> gets/posts seem to take FOR-EV-ER.
>
> I've looked at the code a dozen times, I'm not doing anything else
> weird, I immediately return from that subroutine and back to the exact place
> I was, I don't tweak anything special... I just :
>
> $tcontent = "";
>
> if ($gg{'TTMPRESULTS'} =~ /Must_Checkpoint/) {
> $response = $browser->post(
> $ccheckpointurl.$procnum,
> &ssetheader("$ccheckpointurlhdr"),
> Content => $tcontent
> );
> } else {
> print "No checkpoint\n";
> }
>
>
> Its all SSL so doing any sort of debug with wireshark isn't possible
> (They won't release the SSL key to me) so I don't know where to go. The fact
> that it (Unfortunately, knowingly) error 500's is my only starting point.
>
> Ideas?
>
> Thanks, Tuc
>