Server/proxy processes could leave caches that are stored in shared memory in corrupted state if the processes exit (due to signal or crash) during critical section of the code (e.g. when they have acquired the relevant lock).
The effect - the remaining processes could crash or use the corrupted data.
Partial solution for this would be to block certain signals during critical sections as is done in lock_log(). The risk is that this would severely impact performance since cache is locked and unlocked much more often than logs.
This issue is related to ZBX-10410.