Repository navigation
Conversation
accel_unlock_all() runs at the end of every request and releases the whole lock file with F_UNLCK (l_start = 0, l_len = 0). fcntl() record locks are owned by the process, not by the thread, so under ZTS a thread finishing its request also releases the SHM write lock (byte 0) held by another thread of the same process inside zend_shared_alloc_lock(), and the restart lock (byte 2). With several multi-threaded processes sharing the cache (Apache mod_php with the event or worker MPM) another process can then take the write lock while the first one is still writing, and two processes modify SHM at the same time. Children crash during warm-up even without any OPcache restart (SIGSEGV in accel_find_interned_string() and zend_hash_find_bucket()). Bytes 0 and 2 are always released by the thread that took them (zend_shared_alloc_unlock(), zend_shared_alloc_safe_unlock(), accel_restart_leave()), so under ZTS only release the reader lock. NTS is unchanged.
This was referenced Oct 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepared with an AI assistant (Claude), which also ran the reproduction and the tests on my machine; I reviewed the result. The text below is AI-generated (quoted, as asked in CONTRIBUTING.md).
🤖 Generated with Claude Code