From: TreeHunter <no...@gi...> - 2025-08-04 16:28:22
|
Branch: refs/heads/master Home: https://github.com/FirebirdSQL/firebird Commit: 0043aba92ef42a6a13e03307032a32553d7a966f https://github.com/FirebirdSQL/firebird/commit/0043aba92ef42a6a13e03307032a32553d7a966f Author: TreeHunter <608...@us...> Date: 2025-08-04 (Mon, 04 Aug 2025) Changed paths: M src/jrd/Database.cpp M src/jrd/Database.h Log Message: ----------- fix(shutdown): Prevent race condition when GlobalObject destruction routine unlocks global mutex (#8652) * fix(shutdown): Prevent race condition when ~GlobalObjectHolder() routine unlocks global mutex Unlocking global mutex in GlobalObject destruction routine made it possible for a new attachment to slip in, so it will be creating new GlobalObject and using it, while destroying routine still in action. This can lead to an undefined state of the global objects, such as shared memory, where one thread is actively using it while another thread is destroying it. * fix(shutdown): Reimplement synchronization between shutdown and init routine for GlobalObjectHolder * refactor(shutdown): Remove unused variable * refactor(shutdown): Code adjustments after Vlad review --------- Co-authored-by: Artyom Ivanov <art...@re...> To unsubscribe from these emails, change your notification settings at https://github.com/FirebirdSQL/firebird/settings/notifications |