[squid-users] assertion failed: client_side.h:364: "sslServerBump == srvBump"

Marc Micalizzi marc at selectgranitetops.com
Mon Apr 20 19:46:12 UTC 2015


I'm encountering this same issue in Squid-3.5.3 

 

> Changed to:

> 

>   inline void setServerBump(Ssl::ServerBump *srvBump) {

>       if (!sslServerBump)

>           sslServerBump = srvBump;

>       else

>           assert(sslServerBump = srvBump);

 

Just FYI, from a glance this would leak an Ssl::ServerBump every time it hit
that assert, which at least in my case would be quite often.

 

What I ended up doing, which could be completely wrong for the behaviour,
but it seems to avoid the crashes, was add a function clearServerBump(), and
use that in setServerBump to clean up the old sslServerBump (as in the
header file it is only a forward declaration of the class):

 

client_side.h

 

    void clearServerBump();

    inline void setServerBump(Ssl::ServerBump *srvBump) {

        if (sslServerBump) {

            if (sslServerBump != srvBump) {

              clearServerBump();

            } else {

              return;

            }

        }

        sslServerBump = srvBump;

    }

 

client_side.cc

 

void ConnStateData::clearServerBump() {

  delete sslServerBump;

  sslServerBump = 0;

}

 

This could entirely have unintended side effects as I am not very familiar
with how sslbumping is implemented, and the intended lifetime of the objects
as relates to the client requests, but if you're still using the workaround
you posted I thought you should be aware that you would be leaking memory
and provide you with an equivalent "solution" which does not leak memory in
the same way.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squid-cache.org/pipermail/squid-users/attachments/20150420/3db123ee/attachment.html>


More information about the squid-users mailing list