Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1102048

Summary: Transactions and data should prefer to be sourced from a primary owner
Product: [JBoss] JBoss Data Grid 6 Reporter: Dan Berindei <dberinde>
Component: InfinispanAssignee: Tristan Tarrant <ttarrant>
Status: CLOSED UPSTREAM QA Contact: Martin Gencur <mgencur>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: jdg-bugs
Target Milestone: ER6   
Target Release: 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:35:57 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dan Berindei 2014-05-28 11:49:44 UTC
The current state transfer mechanism will ask the backup segments for transaction and state information. However, this breaks if there is a pessimistic transaction executing on the primary data owner, Consider the following use case:

A new owner joins and sources the ongoing transactions and data for key k from the backup. Meanwhile, a local transaction has started on the primary owner for k, but has not prepared on any remote nodes. So the new node does not know about the ongoing transaction. While that's going on, a new tx starts on the new owner. Since these are pessimistic, the new transaction will acquires the lock for the same key.

So we can have data inconsistency.

The state transfer mechanism should prefer to source the transaction and state information from the primary owner. This should cover all cases: if the originator is not the primary owner, then any (backup) locks must be replicated to all the owners, either directly during the tx or during a previous state transfer.

For transactions that are started on the old primary owner after the tx list was sent to the joiner, we still don't replicate the lock information to the joiner (because the originator is still the primary owner in the union CH that we use during state transfer). When state transfer ends and the joiner becomes the new primary owner, it will allow other txs to lock the same key.

We should change PessimisticLockingInterceptor to replicate the lock command to the other owners even if the originator is the primary owner, when there is a state transfer in progress.

Comment 2 Red Hat Bugzilla 2025-02-10 03:35:57 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.