@@ -1000,6 +1000,7 @@ Dbtup::releaseFragPage(Fragrecord* fragPtrP,
10001000 Uint32 last_lcp_state = (*prev) & LAST_LCP_FREE_BIT;
10011001 Uint32 lcp_scan_ptr_i = fragPtrP->m_lcp_scan_op ;
10021002 bool lcp_to_scan = false ;
1003+ bool rowid_in_remaining_lcp_set = false ;
10031004 if (lcp_scan_ptr_i != RNIL)
10041005 {
10051006 /* *
@@ -1011,16 +1012,19 @@ Dbtup::releaseFragPage(Fragrecord* fragPtrP,
10111012 * duplicate some DELETE BY ROWID, but it should only have a minor
10121013 * performance impact. Otherwise we will ignore it.
10131014 */
1015+ jam ();
10141016 ScanOpPtr scanOp;
10151017 Local_key key;
10161018 c_scanOpPool.getPtr (scanOp, lcp_scan_ptr_i);
10171019 key.m_page_no = logicalPageId;
10181020 key.m_page_idx = ZNIL;
1019- if (is_rowid_in_remaining_lcp_set (pagePtr.p ,
1020- fragPtrP,
1021- key,
1022- *scanOp.p ,
1023- 1 /* Debug for LCP scanned bit */ ) ||
1021+ rowid_in_remaining_lcp_set =
1022+ is_rowid_in_remaining_lcp_set (pagePtr.p ,
1023+ fragPtrP,
1024+ key,
1025+ *scanOp.p ,
1026+ 1 /* Debug for LCP scanned bit */ );
1027+ if (rowid_in_remaining_lcp_set ||
10241028 pagePtr.p ->is_page_to_skip_lcp ())
10251029 {
10261030 jam ();
@@ -1161,10 +1165,18 @@ Dbtup::releaseFragPage(Fragrecord* fragPtrP,
11611165 if (unlikely (lcp_scanned_bit != 0 ))
11621166 {
11631167 g_eventLogger->info (" (%u)tab(%u,%u):%u crash lcp_scanned_bit set" ,
1168+ " is lcp_scan_ptr_i RNIL %u,"
1169+ " last_lcp_state %u,"
1170+ " is_rowid_in_remaining_lcp_set %u"
1171+ " is_page_to_skip_lcp %u" ,
11641172 instance (),
11651173 fragPtrP->fragTableId ,
11661174 fragPtrP->fragmentId ,
1167- logicalPageId);
1175+ logicalPageId,
1176+ lcp_scan_ptr_i == RNIL,
1177+ last_lcp_state,
1178+ rowid_in_remaining_lcp_set,
1179+ pagePtr.p ->is_page_to_skip_lcp ());
11681180 ndbrequire (lcp_scanned_bit == 0 );
11691181 }
11701182 }
0 commit comments