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