fiber: do not crash on concurrent fiber:join()
If two or more fibers are yielding in fiber_join_timeout(), one of them will eventually join and recycle the fiber, while the rest will crash on accessing the recycled fiber's struct. Fix this by doing fiber_find() again after each waiting attempt in lbox_fiber_join(). Closes #7489 Closes #7531 NO_DOC=bugfix
Showing
- changelogs/unreleased/gh-7489-concurrent-fiber-join.md 3 additions, 0 deletionschangelogs/unreleased/gh-7489-concurrent-fiber-join.md
- src/lua/fiber.c 25 additions, 1 deletionsrc/lua/fiber.c
- test/app-luatest/gh_7489_concurrent_fiber_join_test.lua 81 additions, 0 deletionstest/app-luatest/gh_7489_concurrent_fiber_join_test.lua
Loading
Please register or sign in to comment