8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 04:43:03 +01:00

Fixed bug CORE-2340 : Bugcheck 258 (page slot not empty) could occurs under high concurrent load

This commit is contained in:
hvlad 2009-02-24 08:19:11 +00:00
parent 781a565209
commit ff50ab26a2

View File

@ -2614,16 +2614,16 @@ static void extend_relation( thread_db* tdbb, jrd_rel* relation, WIN * window)
CCH_MARK(tdbb, &pp_window); CCH_MARK(tdbb, &pp_window);
ppage->ppg_header.pag_flags &= ~ppg_eof; ppage->ppg_header.pag_flags &= ~ppg_eof;
ppage->ppg_next = new_pp_window.win_page.getPageNum(); ppage->ppg_next = new_pp_window.win_page.getPageNum();
ppage = (pointer_page*) CCH_HANDOFF(tdbb, &pp_window, new_pp_window.win_page.getPageNum(), --pp_sequence;
LCK_write, pag_pointer);
break;
} }
CCH_RELEASE(tdbb, &pp_window); CCH_RELEASE(tdbb, &pp_window);
} }
/* We've found a slot. Stick in the pointer to the data page */ /* 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 */ CORRUPT(258); /* msg 258 page slot not empty */
} }