[squid-users] cannot leave empty workers
Alex Wu
alex_wu2012 at hotmail.com
Fri Jul 24 23:53:06 UTC 2015
further analysis indicated that master process created quid-ssl_session_cache.shm.
In other words, it needs a https_port or http_port with ssl-bump in outside any process number to create this shared memeory segment.
Furthermore, the code should be simplied like this:
diff --git a/squid-3.5.6/src/ssl/support.cc b/squid-3.5.6/src/ssl/support.cc
index 85305ce..0ce95f9 100644
--- a/squid-3.5.6/src/ssl/support.cc
+++ b/squid-3.5.6/src/ssl/support.cc
@@ -2084,9 +2084,6 @@ SharedSessionCacheRr::useConfig()
void
SharedSessionCacheRr::create()
{
- if (!isSslServer()) //no need to configure ssl session cache.
- return;
-
int items;
items = Config.SSL.sessionCacheSize / sizeof(Ipc::MemMap::Slot);
if (items)
This code is called in master that may not have configuration to ensure isSsslServer return true.
Alex
From: alex_wu2012 at hotmail.com
To: squid3 at treenet.co.nz; squid-users at lists.squid-cache.org
Date: Fri, 24 Jul 2015 15:28:06 -0700
Subject: Re: [squid-users] cannot leave empty workers
There is a problem
The code isSslServer looks for https configuration. If no one found, it will not create /run/shm/ssl_session_cache.shm.
Late, the code somewhere else can not find it, so the process would not start it self.
I am not clear which worker is called first to initialize_session_cache.
We see master and coordinator start properly. so I suspect coordinator might be one to initialze ssl_session_cache?
Or since all my http_port are listed in worker process 4, so isSllServer cannot find https_port, so it will not initialize ssl_session_cache.shm.
Somewhere, something is odd.
THX
Alex
> To: squid-users at lists.squid-cache.org
> From: squid3 at treenet.co.nz
> Date: Sat, 25 Jul 2015 10:07:18 +1200
> Subject: Re: [squid-users] cannot leave empty workers
>
> On 25/07/2015 7:24 a.m., Alex Wu wrote:
> > If I define 4 workers, and use the following way to allocate workers:
> >
> > if ${process_number} = 4
> > //do something
> > else
> > endif
>
> The "else" means the wrapped config bit applies to *all* workers and
> processes of Squid except the one in the if-condition (process #4). It
> is optional.
>
> if ${process_number} = 4
> # do something
> endif
>
> It does not even do anything in the code except invert a bitmask. An
> "endif" then erases that bitmask. So an empty "else" is effectively
> doing nothing at all.
> Just like one would expect reading that config.
>
> The bug is elsewhere (sorry for the pun).
>
> >
> > I leave other workers as empty after else, then we encounter this error:
> >
> > FATAL: Ipc::Mem::Segment::open failed to shm_open(/squid-ssl_session_cache.shm): (2) No such file or directory
> >
> > If I fill one more workers,especially ${process_number} = 1, then squid can launch workers now,
> >
>
> Was that really the full config?
>
> I dont see "workers 4" in there at all and something must have been
> configured to use the shared memory TLS/SSL session cache.
>
> Amos
>
> _______________________________________________
> squid-users mailing list
> squid-users at lists.squid-cache.org
> http://lists.squid-cache.org/listinfo/squid-users
_______________________________________________
squid-users mailing list
squid-users at lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squid-cache.org/pipermail/squid-users/attachments/20150724/2de739ec/attachment.html>
More information about the squid-users
mailing list