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 >>> > >>> >>