[squid-users] 3.5.27 to 4.4: a worker is dead

Alex Rousskov rousskov at measurement-factory.com
Thu Nov 8 16:42:40 UTC 2018


On 11/8/18 8:49 AM, Heiler Bemerguy wrote:
>>> 2018/11/07 07:17:03 kid4| FATAL: Dying from an exception handling
>>> failure; exception: check failed: false
>>>      exception location: mem/PageStack.cc(106) push

>> The SMP shared-memory space has been asked to allocate more memory than
>> it has total capacity.

> Why would it do that?

I am not sure that explanation is accurate. The exception is thrown when
Squid's shared memory manager is given a (previously used/allocated)
shared memory page to add/return to the index of free (i.e. available
for future use) memory pages. When trying to add that free page, Squid
found that the entire index of free shared memory pages is full -- all
previously allocated shared memory pages for the given scope/segment
were already freed/indexed, and there could not have been one more free
page.

It is not clear whether Squid is wrong about the index being full or the
calling code is giving a free page that was already index (i.e. an
equivalent of a double-free bug). There could also be some (currently
unknown) and mishandled race condition when navigating the shared memory
index.

My bet is on a bug in Squid code that attempts to recover from disker
errors (you have reported some disker-related errors/timeouts that
preceded this exception IIRC). If I am right, then this exception is a
symptom of a Squid bug located elsewhere.

Alex.


More information about the squid-users mailing list