Bugcheck 258 (page slot not empty) could occurs under high concurrent load [CORE2340] #2764
Submitted by: @hvlad
When some relation is extended by the few attachments simultaneously bugcheck could occurs.
The text was updated successfully, but these errors were encountered:
Commented by: @hvlad
A little explanation of bug and fix. Look at dpm.epp\extend_relation.
-- here we allocate new PP
-- here we store new PP number at in-memory array of PPs
-- here we store new PP number in RDB$PAGES
-- BUG : at this point slot 0 could be filled by some other attachment
- ppage = (pointer_page*) CCH_HANDOFF(tdbb, &pp_window, new_pp_window.win_page.getPageNum(),
-- FIX : therefore release PP and go to the loop again, searching for free slot
/* We've found a slot. Stick in the pointer to the data page */
-- another BUG : pointer page was not released so engine is in bad shape and can't report error correclty