Skip to content

Commit 54cf13e

Browse files
committed
Fixed bug #8901 : Bugcheck during nbackup under high load
Thanks to @AlexPeshkoff for help
1 parent 87d15f5 commit 54cf13e

2 files changed

Lines changed: 2 additions & 1 deletion

File tree

src/jrd/nbak.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ void NBackupStateLock::blockingAstHandler(thread_db* tdbb)
120120
}
121121

122122
{ // scope
123+
backup_manager->stateBlocking = true;
123124
Firebird::MutexUnlockGuard counterGuard(counterMutex, FB_FUNCTION);
124125
backup_manager->stateBlocking = !backup_manager->localStateLock.tryBeginWrite(FB_FUNCTION);
125126
if (backup_manager->stateBlocking)

src/jrd/nbak.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ class BackupManager
510510
bool shutDown;
511511
bool allocIsValid; // true, if alloc table cache is completely read from disk
512512
bool master; // this instance performs current begin\end backup process
513-
bool stateBlocking; // blocking AST handler doesn't released stateLock
513+
std::atomic_bool stateBlocking; // blocking AST handler doesn't released stateLock
514514

515515
NBackupStateLock* stateLock;
516516
Firebird::RWLock localStateLock; // must be acquired before global stateLock

0 commit comments

Comments
 (0)