-
Notifications
You must be signed in to change notification settings - Fork 7.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix GH-13437: FPM: ERROR: scoreboard: failed to lock (already locked) #15805
Conversation
216d268
to
0f647dc
Compare
This is an attempt to fix GH-13437 which seems to work in my testing. However it might be a bit too much for the actual bug fix - specifically reduction of reader contention might not be necessary here because I didn't see that much reader contention in my testing. There is mostly writer contention so it should be enough to just add retries but the question is impact on performance. I'm still not decided whether to target 8.2 at the end. It will need more testing though. And also need to do some clean up as I initially started just with atomics so there are some left overs in the code. |
Btw there are few more issues with locking procs and optimizing atomics that I plan to look later too. |
0f647dc
to
a584cc8
Compare
This changes locking for scoreboard to reduce contention between readers and adds retries for acquiring scoreboard for read. Closes phpGH-15805
a584cc8
to
c3366e2
Compare
I have done some further testing and checking and think it's ok for review. I might do even more testing next week so I changed the base to 8.3 as 8.2 is pretty close to the end of active support and this is potentially risky even considering the new regression rule. I can also control better quick fixes to 8.3 if needed in case it needs changes as quickly as possible. I also added hid some debug logs as they are too noisy even for debug level and they go also to external logger (fcgi stderr) for those triggered in the child. I plan to improve this in master (filtering for external logger and introduction of new trace log level for FPM). |
I was checking the failures in tests and there are related so need to debug them first and then do even more testing as my initial testing completely missed it. |
This changes locking for scoreboard to reduce contention between readers and adds retries for acquiring scoreboard for read. Closes phpGH-15805
c3366e2
to
6201bc5
Compare
Found the issue and fixed it so all should be hopefully ready now. Will do a bit more testing next week and if I don't find anything, I will merge it. |
This changes locking for scoreboard to reduce contention between readers and adds retries for acquiring scoreboard for read.