[squid-users] FATAL: assertion failed: mem/PageStack.cc:159: "StoredNode().is_lock_free()"
Alex Rousskov
rousskov at measurement-factory.com
Thu Jul 4 14:24:57 UTC 2024
On 2024-07-04 04:57, Nishant Sharma wrote:
> On 03/07/24 21:27, Alex Rousskov wrote:
>> On 2024-07-03 09:27, Nishant Sharma wrote:
>>> Is there any change that we need to do in the configure script to
>>> check for the availability of 64 bit atomic lock and use 32 bit lock
>>> if not available?
>> It is technically possible (perhaps even without ./configure checks),
>> but it would require adjusting complex shared tree code in the abcense
>> of comprehensive ready-to-use tests. It is trivial to break that code.
>> It is difficult to detect bugs. IMO, we should not expose ourselves to
>> such risks in this case, especially since Squid uses 64-bit atomics in
>> many other places: Supporting 32 bits in shared binary tree nodes is
>> not going to remove the last frequently used 64-bit lock.
> Just being curious here, if a certain platform (mips32 in this case) is
> unable to guarantee a 64 bit atomic lock, other functions except SMP
> mode might get affected as well?
The answer depends on where one draws "SMP mode" boundaries: The locks
in question should have no effect on non-SMP Squid (i.e. Squids with
only one worker process, no cache_dir diskers, and memory_cache_shared
not turned on). Beyond that, it is very difficult to isolate "other
functions" from "SMP mode" because a lot of Squid "functions" ought to
be (and are becoming) SMP-aware and, hence, use shared memory locking.
>> Disclaimer: I do not know what "lock ID" is in this context.
> "lock ID" term was used on Openwrt issue tracker where it was suggested
> that "The assertion assumes 64bit lock id.". [1]
Yes, I am aware. I wrote the disclaimer _after_ reading that thread :-).
> Let me experiment with squid-6.x on these devices and also use them in
> the live environment.
>
> The only change being commenting out the following line from
> ipc/mem/PageStack.c:
>
> `assertion(StoredNode().is_lock_free());`
>
> I will report back with success or any failures encountered.
Thank you,
Alex.
> [1]
> "https://github.com/openwrt/packages/issues/24469#issuecomment-2202322703"
More information about the squid-users
mailing list