UnackedRpcResults needed for transaction recovery may be lost during migration

Description

When migrating a tablet, the associated UnackedRpcResults records and ParticipantList entries are migrated independently. This means that UnackedRpcResults records may be garbage collected before the TransactionManager can protect them (with UnackedRpcResults::SingleClientProtector).

This is not a problem with recovery since the recovery master can hold a UnackedRpcResults:rotector during the entire recovery while the TransactionManager puts its protectors in place.

One solution might be to hold a UnackedRpcResults:rotector during migration. However, this is more difficult since there is no simple and clear start and end of migration from the target server's perspective.

Environment

None

Status

Assignee

Seo Jin Park

Reporter

Collin Lee

Labels

None

Components

Priority

Medium
Configure