Thompsonbry.systap added a comment.

Our plan is to implement a utility that overwrites the address of the deferred 
free list.  So you would run this utility. It would overwrite the address as 0L 
so that the deferred free list is empty.  You would then re-open the journal 
normally.

The head of the deferred frees list is stored in the ICommitRecord. It is 
accessed by the RWStore in checkDeferredFrees().

  final long blockAddr = record
          .getRootAddr(AbstractJournal.DELETEBLOCK);
  
  if (blockAddr != 0) {
  
      totalFreed += freeDeferrals(blockAddr,
              record.getTimestamp());
      
  }

The proposal is simply to overwrite the root addr for the delete blocks to zero 
in the utility class for each commit point retained in the commit record index. 
 This will allow the normal processing to not recycle those allocations.

Note: The exception indicates that the correspondence between the allocators 
when the deferred frees list was written and then current committed allocators 
is broken. Thus we must not release the slots associated with the deferred 
frees in this situation because it is possible that they have been allocated to 
data committed since the point at which the problem occurred and thus are not 
available for recycling.

We will continue to track down the root cause.  We are still discussing some 
possible scenarios that could lead to this outcome.  They all involved a 
failure to undergo a correct abort at some point followed by successfully 
applied writes and another commit.  We are looking for more mechanisms to allow 
us to lock out such potential problems at the AbstractJournal layer.


TASK DETAIL
  https://phabricator.wikimedia.org/T97468

REPLY HANDLER ACTIONS
  Reply to comment or attach files, or !close, !claim, !unsubscribe or !assign 
<username>.

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Thompsonbry.systap
Cc: JanZerebecki, Jdouglas, Beebs.systap, Thompsonbry.systap, Thompsonbry, 
Haasepeter, Manybubbles, Aklapper, Smalyshev, jkroll, Wikidata-bugs, aude, 
daniel



_______________________________________________
Wikidata-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to