The FDP team is no longer accepting new bugs in Bugzilla. Please report your issues under FDP project in Jira. Thanks.
Bug 2137412 - Make IDL clients connect to the new leader when a transaction fails due to leadership change.
Summary: Make IDL clients connect to the new leader when a transaction fails due to le...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux Fast Datapath
Classification: Red Hat
Component: openvswitch
Version: FDP 22.E
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Ilya Maximets
QA Contact: qding
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-10-24 20:00 UTC by Mark Michelson
Modified: 2024-04-23 21:32 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2024-04-23 21:32:02 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker FD-2398 0 None None None 2022-10-24 20:07:15 UTC

Description Mark Michelson 2022-10-24 20:00:52 UTC
This issue is created as a follow-up of https://bugzilla.redhat.com/show_bug.cgi?id=1999650 .

Specifically, this issue is intended to ensure that the C and python IDL clients for OVSDB will connect to the new leader when a transaction fails due to a RAFT leadership change. Currently, the initial transaction failure is reported via the IDL to the client, and the client will likely re-attempt the transaction. However, behind the scenes, the initial transaction was actually successful on the new leader, so re-attempting the transaction will fail since it will appear that we are inserting the same record a second time.

Comment 2 Ilya Maximets 2024-04-23 21:32:02 UTC
I'm not actually sure what this issue is about.  I remember discussing it
and I remember that it made some sense at the point of creation, but I think
it is missing some context.

For the problem statement in comment #0, the application supposed to re-check
if transaction still applies after the transaction failed for the first time.
It is necessary, because there is a chance that transaction will not fail
and just be executed twice in case it doesn't violate database consistency.
And the IDL clients do actually re-connect to a new leader if they are
configured with leader-only connections.

It would be nice if the transaction didn't fail, but that's the separate issue.

It might be better to actually not re-connect to a new leader while there
is an open transaction.  In this case the client should receive a successful
transaction reply once the transaction is committed.  But that seems to be
an opposite to what this BZ is asking for.

I'll close this one for now.  We may open an FDP Jira issue for keeping
the connection to the old leader while there is an open transaction instead.


Note You need to log in before you can comment on or make changes to this bug.