[squid-users] squid 5.7 FTP upload fails
Alex Rousskov
rousskov at measurement-factory.com
Tue Aug 13 14:21:43 UTC 2024
On 2024-08-13 09:53, Matus UHLAR - fantomas wrote:
>>> On 2024-08-09 09:03, Matus UHLAR - fantomas wrote:
>>>> FTR, I sent the info privately, but we can continue
>>>> discussing/solving it here.
>>>
>>>> maybeMakeSpaceAvailable: request buffer full:
>>>> client_request_buffer_max_size=524288
>>>> ReadNow: ... size 0, retval 0, errno 0
>>>> terminateAll: 1/1 after ERR_CLIENT_GONE/WITH_CLIENT
>
>> On 09.08.24 09:51, Alex Rousskov wrote:
>>> AFAICT, you are suffering from a Squid bug that goes back to 2015
>>> commit 4d1376d7 (that was fixing Squid bug 4206) or even earlier
>>> code. Red flags were raised back in 2015, but nobody followed
>>> through. We need to refactor
>>> Server::maybeMakeSpaceAvailable()-related code to fix this bug.
>>>
>>> FWIW, we did similar work for Squid-to-peer communication in commit
>>> cc8b26f9 and commit 50c5af88. Similar principles should apply to
>>> client-Squid communication. Unfortunately, I do not have enough free
>>> time to volunteer to fix this client-Squid bug now.
>>>
>>> At the expense of using more memory for some upload cases, you may be
>>> able to work around the bug in some (but not all!) cases by making
>>> client_request_buffer_max_size sufficiently large. For example,
>>> setting client_request_buffer_max_size to 16 megabytes may allow you
>>> to pass the test case you have privately shared.
>
> On 12.08.24 11:27, Matus UHLAR - fantomas wrote:
>> I have submitted bug 5405 so it's documented:
>>
>> https://bugs.squid-cache.org/show_bug.cgi?id=5405
>
> Does this bug apply for POST requests as well?
I speculate that the answer is "yes": IIRC, the underlying bug may
affect any request with a large-enough body in _combination_ with other
events/factors that affect buffered data consumption. I have not
checked, but one of those factors could be, for example, the receiving
port protocol (i.e. ftp_port and FTP in your test case) and/or REQMOD
adaptation. I speculate that those "other" events rarely happen in a
typical Squid installation (explaining why most large requests do not
get stuck), but can be reproduced under controlled conditions with
http_port POSTs.
HTH,
Alex.
> Because the biggest PUT is about 4MB so far, but I've seen POST requests
> nearly 54MB big.
More information about the squid-users
mailing list