[ic] mod_interchange and Apache MaxClients
John1
list_subscriber at yahoo.co.uk
Thu Nov 17 18:46:57 EST 2005
On Thursday, November 17, 2005 8:33 PM, kevin at cursor.biz wrote:
> I'm thinking about the PSP hanging issue and how that could effect
> things and I'm lead to believe that the following is happening:
>
> 1. User submits a request that causes a call to the PSP to be
> made.
>
> 2. The PSP is taking its sweet time, so IC waits for a response.
>
> 3. 10 seconds later, mod_interchange gives up and resubmits the
> user's request. This compounds the problem.
>
I am trying to understand the basics of the
apache<->mod_interchange<->interchange communication process...
So what happens if mod_interchange resubmits to interchange whilst it is
waiting for a response? Does it queue the resubmission, or just send a
reply back saying it is still waiting and then drops the resubmissions? If
it queues the resubmissions, what does it do if the PSP does eventually get
back with a reply after say 40 seconds? Does it then drop the 2
resubmissions?
> 4. Loop back to #2 ten times, with a two second delay between
> attempts.
>
That's interesting 10 seconds + 2 second delay = 12 seconds x 10 retries =
120 seconds, which is exactly the length of time (give or take a few
seconds) it takes the browser to give up with "Cannot find server or DNS
error". I assume this is not a coincidence?
> The above will probably wind up eating a lot of sockets, and also
> munch its way through your processes leading to the problems reported.
>
Would it be worth adding the following to Ron's script to show the number of
Unix sockets in use before restarting Apache and Interchange?
netstat -nx | sed '1,2d' | awk '{print $5,$8}' | sed -e 's/:[0-9]*//g' |
sort | uniq -c | sort -n
Or would this not really add any useful information?
> I believe the following, posted earlier in this thread, is a symptom
> of the later failures, rather than the initial cause:
>
>>
>> [Thu Nov 10 20:15:11 2005] [error] [client x.x.x.x] Malformed header
>> return by Interchange:
>> [Thu Nov 10 20:15:11 2005] [error] [client x.x.x.x] Premature end of
>> script headers: /home/xxxxxx/public_html/favicon.ico
>>
>
> Can you check your logs to see if you can spot anything that looks
> like "Failed to select the response header."
>
Well I have plenty of entries recently like this:
[Thu Nov 17 16:02:35 2005] [error] (111)Connection refused: access to
/index.html failed for x.x.x.x, reason: Connection failed
and,
[Thu Nov 17 21:12:42 2005] [error] (104)Connection reset by peer: access to
/index.html failed for x.x.x.x, reason: error sending headers to client
I guess it is this latter error that you are referring to?
> I could be wrong, but the above sounds plausible.
>
> Possible workarounds, if you find the above error message.
>
> 1. Upgrade Interchange. Upgrade it now! See the wget comments.
>
Would upgrading to the wget Payment.pm actually solve the above? Presumably
the issue of mod_interchange resubmitting requests ensuing munching of
sockets and processes would still apply to the wget approach? Is that so?
Do we actually *know* what is "wrong" with Net::SSLeay, or is it just a case
of "we know Net:SSLeay and LWP seems to cause terminated output with
Authorizenet and other payment modules whereas wget deosn't"?
> 1.1. Upgrade everything else while you're at it. I see people are
> still using Red Hat 7 and Perl 5.6 for some reason.
>
I guess I will get round to it eventually... :-)
Are there any notable advantages to upgrading from Perl 5.6?
Is there anything about sticking with Red Hat 7.3 that should cause me
particular concern?
> 2. Add "ConnectTries 1" to the mod_interchange <Location>
> parameters in your Apache configuration. This will cause the
> initial timeout to force a failure, rather than retry the
> request.
>
Are there any negative consequences to doing this, that would actually
matter in practice?
Are there any good reasons why mod_interchange may get timeouts in the
normal course of a customer browsing the site?
Does this mean that if it takes more than IC_DEFAULT_TIMEOUT for the
Interchange service to respond to a page request the customer's browser will
return "Cannot find server or DNS error"?
> 3. Increase the mod_interchange timeout. This can only be done by
> editing mod_interchange.c, to increase the IC_DEFAULT_TIMEOUT
> definition, and recompiling mod_interchange.so. Perhaps I
> should make that configurable in the Apache config.
>
What would you suggest for IC_DEFAULT_TIMEOUT?
Again, what would the negative consequences be of increasing
IC_DEFAULT_TIMEOUT?
Are the negative consequences really going to matter in practice?
> Give the above a try and see if any of it works.
>
I certainly will! Thank you very much Kevin!!
BTW, have you any idea where is my original post about payment service
provider (PSP) timeouts and Net::SSLeay? The mailing list doesn't seem to
have mailed me a copy (even though I have it configured to mail me copies of
all posts including my own). But you have obviously seen it Kevin. Ron &
Jeff, did the mailing list send you a copy?
___________________________________________________________
Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com
More information about the interchange-users
mailing list