Okay agreed that is a valid time out basically it is saying that a client has established tcp/ip connection but has not put its request either a get put or a post
On Wed, Apr 23, 2025, 3:38 PM Joseph He <joseph.he.2...@gmail.com> wrote: > On Apache2 doc, I found this. How does this timeout work? It looks like it > can only wait for 300 seconds before failing a request. > > https://httpd.apache.org/docs/2.0/mod/core.html#timeout > Description: > <https://httpd.apache.org/docs/2.0/mod/directive-dict.html#Description> Amount > of time the server will wait for certain events before failing a request > Syntax: <https://httpd.apache.org/docs/2.0/mod/directive-dict.html#Syntax> > TimeOut seconds > Default: > <https://httpd.apache.org/docs/2.0/mod/directive-dict.html#Default> TimeOut > 300 > Context: > <https://httpd.apache.org/docs/2.0/mod/directive-dict.html#Context> server > config, virtual host > Status: <https://httpd.apache.org/docs/2.0/mod/directive-dict.html#Status> > Core > Module: <https://httpd.apache.org/docs/2.0/mod/directive-dict.html#Module> > core > > The TimeOut directive currently defines the amount of time Apache will > wait for three things: > > 1. The total amount of time it takes to receive a GET request. > 2. The amount of time between receipt of TCP packets on a POST or PUT > request. > 3. The amount of time between ACKs on transmissions of TCP packets in > responses. > > We plan on making these separately configurable at some point down the > road. The timer used to default to 1200 before 1.2, but has been lowered to > 300 which is still far more than necessary in most situations. It is not > set any lower by default because there may still be odd places in the code > where the timer is not reset when a packet is sent. > > On Wed, Apr 23, 2025 at 3:07 PM Mithun Bhattacharya <mit...@gmail.com> > wrote: > >> You configure timeout at the client side. Apache is at the server side. >> Server doesn't have a concept of time it could take days to run and not >> care. >> >> mod_perl code is where you are sending the http return status to make >> sure the client doesn't timeout waiting for the server to respond. >> >> On Wed, Apr 23, 2025, 2:19 PM Joseph He <joseph.he.2...@gmail.com> wrote: >> >>> Thanks, all. >>> Is that Apache timeout controlled by its configuration "Timeout"? >>> I don't think it has anything to do with modPerl. Am I missing something? >>> Thanks. >>> >>> On Wed, Apr 23, 2025 at 1:41 PM Mithun Bhattacharya <mit...@gmail.com> >>> wrote: >>> >>>> Timeout happens because of how we handle the request. Timeout is >>>> basically no response came back. Why that happens is because we think we >>>> want to have a correct response. Unfortunately for long running requests >>>> the correct response shouldn't be via http response code or we face >>>> situations like this. Instead reply with a 200 OK immediately and then >>>> provide correct status in the message body. Once a response code/header has >>>> been sent timeout won't trigger and you could potentially hold the >>>> connection for hours without a problem. >>>> >>>> On Wed, Apr 23, 2025, 9:32 AM Andreas Mock <andreas.m...@web.de> wrote: >>>> >>>>> Hi Joseph, >>>>> >>>>> your description is very vague, so can only answer on some assumptions: >>>>> >>>>> It sounds like a timeout is fired somewhere. >>>>> >>>>> Best advice in these situations: Log as many steps as you can. Keep >>>>> your >>>>> eyes open on TCP/IP and higher level timeouts. >>>>> >>>>> Declare only ONE instance responsible for a retry: Either the app >>>>> server >>>>> calling the dispatcher with several tries or the dispatcher trying for >>>>> himself. Not both. >>>>> >>>>> Best regards >>>>> Andreas >>>>> >>>>> >>>>> Am 23.04.2025 um 16:21 schrieb Joseph He: >>>>> > All, good day. >>>>> > >>>>> > Here is the issue I have. >>>>> > My entire application is running on ModPerl/Apache environment. >>>>> > I send Http::Request with data load from my App server to a dispatch >>>>> > server thru LWP::UserAgent, I set the timeout 600 seconds. >>>>> > >>>>> > The dispatch server is supposed to manipulate the data and send the >>>>> > data to an external SFTP server. Because the SFTP can fail, it will >>>>> > keep trying up to 4 times with 30 seconds sleep in case that SFTP >>>>> > connection fails. >>>>> > >>>>> > Recently, I found that I uploaded the file twice sometimes. I >>>>> figured >>>>> > out the root cause is that my Dispatch server returns 'failure' at 6 >>>>> > minutes while it keeps trying to do the SFTP. The App server >>>>> > received HTTP::Response with error status so it issued another call >>>>> to >>>>> > send data. It turns out I uploaded the identified file twice. >>>>> > >>>>> > Anybody has this sort of experience? Why does the dispatch server >>>>> > return 'error' while it still processes the data? >>>>> > >>>>> > Thanks a lot, >>>>> > Joseph >>>>> > >>>>> >>>>