On 10 Nov 2014, at 10:26, Daniel-Constantin Mierla miconda@gmail.com wrote:
On 07/11/14 22:54, Alex Balashov wrote:
On 11/07/2014 04:45 PM, Daniel-Constantin Mierla wrote:
Using sht_lock() and accessing an item on the same slot is ending up in a deadlock.
Should be avoided for the moment -- I didn't have time to look for a solution with the work on releases during the past days.
The share hash table is available to all processing, the access to items is synchronized. So if two processes need to access exactly the same item, then one waits for the other. However, accessing the same item at the same time is not that common, as each worker handles different traffic, but it is a possibility.
It is indeed a possibility if one is using it to store global variables, as it is the only "kind of nonscalar" structure available for that purpose besides the very primitive global $shv().
For the records, the master branch has a patch for allowing re-entrant locking of the slot from same process, so the issue should be fixed.
I suggest that we treat this as a bug and backport to 4.2 when it's confirmed to solve the issue.
/O