[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ic] mod_interchange and Apache MaxClients


On Thursday, November 17, 2005 8:33 PM, suppressed 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
_______________________________________________
interchange-users mailing list
suppressed
http://www.icdevgroup.org/mailman/listinfo/interchange-users


Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.