diff options
Diffstat (limited to 'external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1')
-rw-r--r-- | external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1 | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1 b/external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1 new file mode 100644 index 000000000..e569fccdc --- /dev/null +++ b/external/firebird/0001-Avoid-hangup-in-SS-when-error-happens-at-system-atta.patch.1 @@ -0,0 +1,51 @@ +From 36a7a2634669075be3294a1d075524a0b6f80962 Mon Sep 17 00:00:00 2001 +From: hvlad <hvlad@users.sourceforge.net> +Date: Wed, 17 Aug 2016 15:45:30 +0300 +Subject: [PATCH] Avoid hangup in SS when error happens at system attachment + initialization time + +--- + src/jrd/cch.cpp | 7 ++++++- + src/jrd/vio.cpp | 5 +++++ + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/src/jrd/cch.cpp b/src/jrd/cch.cpp +index 35ea096..643cf4d 100644 +--- a/src/jrd/cch.cpp ++++ b/src/jrd/cch.cpp +@@ -2963,10 +2963,15 @@ static THREAD_ENTRY_DECLARE cache_writer(THREAD_ENTRY_PARAM arg) + iscDbLogStatus(dbb->dbb_filename.c_str(), &status_vector); + } + +- bcb->bcb_flags &= ~(BCB_cache_writer | BCB_writer_start); ++ bcb->bcb_flags &= ~BCB_cache_writer; + + try + { ++ if (bcb->bcb_flags & BCB_writer_start) ++ { ++ bcb->bcb_flags &= ~BCB_writer_start; ++ bcb->bcb_writer_init.release(); ++ } + bcb->bcb_writer_fini.release(); + } + catch (const Firebird::Exception& ex) +diff --git a/src/jrd/vio.cpp b/src/jrd/vio.cpp +index a8cf0fc..3d35a27 100644 +--- a/src/jrd/vio.cpp ++++ b/src/jrd/vio.cpp +@@ -4988,6 +4988,11 @@ static THREAD_ENTRY_DECLARE garbage_collector(THREAD_ENTRY_PARAM arg) + try + { + // Notify the finalization caller that we're finishing. ++ if (dbb->dbb_flags & DBB_gc_starting) ++ { ++ dbb->dbb_flags &= ~DBB_gc_starting; ++ dbb->dbb_gc_init.release(); ++ } + dbb->dbb_gc_fini.release(); + } + catch (const Firebird::Exception& ex) +-- +2.9.3 + |