From ff50ab26a24bc12ec4c6e8aee892f75933fbab1e Mon Sep 17 00:00:00 2001 From: hvlad Date: Tue, 24 Feb 2009 08:19:11 +0000 Subject: [PATCH] Fixed bug CORE-2340 : Bugcheck 258 (page slot not empty) could occurs under high concurrent load --- src/jrd/dpm.epp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/jrd/dpm.epp b/src/jrd/dpm.epp index 7c049e0415..4b879049e4 100644 --- a/src/jrd/dpm.epp +++ b/src/jrd/dpm.epp @@ -2614,16 +2614,16 @@ static void extend_relation( thread_db* tdbb, jrd_rel* relation, WIN * window) CCH_MARK(tdbb, &pp_window); ppage->ppg_header.pag_flags &= ~ppg_eof; ppage->ppg_next = new_pp_window.win_page.getPageNum(); - ppage = (pointer_page*) CCH_HANDOFF(tdbb, &pp_window, new_pp_window.win_page.getPageNum(), - LCK_write, pag_pointer); - break; + --pp_sequence; } CCH_RELEASE(tdbb, &pp_window); } /* We've found a slot. Stick in the pointer to the data page */ - if (ppage->ppg_page[slot]) { + if (ppage->ppg_page[slot]) + { + CCH_RELEASE(tdbb, &pp_window); CORRUPT(258); /* msg 258 page slot not empty */ }