graygnuorg / pound

Light-weight reverse proxy, load balancer and HTTPS front-end for Web servers.
GNU General Public License v3.0
43 stars 13 forks source link

"error copy client cont" error #27

Closed abaldoni closed 6 months ago

abaldoni commented 6 months ago

Using pound 4.9.90 and upgraded to 4.11.90.

We started seeing more and more of the following errors for a specific backend:

e500 for [ext ip address] error copy client cont to [backend address]/POST /EWS/mrsproxy.svc HTTP/1.1: Connection timed out (10.038 sec)

Can you help us understand what does the error mean and where the time out is set?

This is the configuration stanza in use:

    Service
            HeadRequire "Host: .*redacted*"
            URL ".*/(autodiscover|ecp|ews|EWS|mapi|Microsoft-ActiveSync|oab|owa|rpc).*"
            IgnoreCase 1
            BackEnd
                    HTTPS
                    Address redacted
                    Port 443
                    TimeOut 180
            End
    End

Regards, AB

graygnuorg commented 6 months ago

This message means that the client didn't send the content of the request (as announced by the Content-Length header) within the client timeout. The timeout is set by the Client statement in the ListenHTTP . The default is 10 seconds.

Did this error appear when you were running 4.9.90?

abaldoni commented 6 months ago

Hi, yes the error is in both version 4.9.90 and 4.11.90. Unfortunately we cannot say whether it was present in earlier versions: we can only say that the backend seemed to work better in the past.

graygnuorg commented 6 months ago

And you can't reproduce it, can you?

abaldoni commented 6 months ago

I a certain sense I can. The backend connects to a Microsoft Exchange hybrid mode server and the error occurs when we need to migrate a mailbox from the on-premise server to the Microsoft cloud. I tried again a few hours ago and the problem occurred again.

graygnuorg commented 6 months ago

That's great. A couple of questions then:

  1. Is it possible that this migration sometimes takes more than 10 seconds?
  2. Have you tried to raise the client timeout? If not, can you please try and see if this helps?
  3. Do you see anything special in the backend logs?
abaldoni commented 6 months ago

The "time" factor is quite unclear to me. The job gets scheduled on the Microsoft cloud which tries to execute it at its own pace. I'll try to increate the client timeout since 10 secs is definitely too low. The backend logs are unfortunately of no use in diagnosing the problem. I'll be back with further details.

Thanks!

graygnuorg commented 6 months ago

In the meantime you might wish to pull the commit 3996e21af4cd1c155cb08272e8f9d0464eb05518 which improves diagnostic messages a bit.

abaldoni commented 6 months ago

Hi, for this specific case we decided to move our Exchange from hybrid to full cloud so we won't be using this backend anymore. Since no other backend presents the problem I'm going to close this issue.

Thanks!