fix: add protections against dataraces in socket engines, cluster timer and queues.#1587
Conversation
✅ Deploy Preview for dpp-dev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
My simple echo bots are stuck in epoll even with 10.1.5 version. |
You could try to test run by applying this PR as a patch and compile/install the library then test it. Feedback would actually be very welcome! |
|
are you saying a simple test bot now gets stuck in epoll and didn't before 10.1.5? |
|
10.1.4 and 10.1.5 got stuck like after several hours. With this patch my bot has survived this night. Definitely a good sign. |
|
My bot is still online. |
|
Dead again now. |
As discussed, here is a smaller PR with less risky changes.
I have changed the following:
epoll, where I removed an unused variable and added a lock where elements were removed from the fds vectorkqueue, where I have added a lock similar toepollqueues, where I have changed two booleans tostd::atomicbooleans, added a safeguard for theclivariable and guards for theremovalsvector.timer, where I added a guard to an unguarded if statement.I believe these changes are light enough to not cause any issues whatsoever, and have kept the riskier changes out of this PR for now while I do more testing on my end.
Code change checklist