[squid-dev] [PATCH] FtpServer.cc:1024: "reply != NULL" assertion

Amos Jeffries squid3 at treenet.co.nz
Wed Aug 19 05:56:04 UTC 2015


On 19/08/2015 4:08 a.m., Tsantilas Christos wrote:
> 
> Handle nil HttpReply pointer inside various handlers called from
> Ftp::Server::handleReply(). For example, when the related StoreEntry
> object is aborted, the client_side_reply.cc code may call the
> Ftp::Server::handleReply() method with a nil reply pointer.
> 
> The Ftp::Server::handleReply() methods itself cannot handle nil replies
> because they are valid in many states. Only state-specific handlers know
> whether they need the reply.
> 
> The Ftp::Server::handleReply() method is called [via Store] from Client
> code. Thus, exceptions in handleReply() are handled by the Ftp::Client
> job. That job does not have enough information to know whether the
> client-to-Squid connection should be closed; the job keeps the
> connection open. When the reply is nil, that open connection becomes
> unusable, leading to more problems.
> 
> This patch fixes the Ftp::Server::handleReply() to handle exceptions,
> including closing the connections in the case of an exception. It also
> adds Must(reply) checks to check for nil HttpReply pointers where the
> reply is required. Eventually, Store should start using async calls to
> protect jobs waiting for Store updates. Meanwhile, this should help.
> 
> This is a Measurement Factory project.
> 

+1. Please apply. Thank you.

Amos



More information about the squid-dev mailing list