[CONTROLLER-1691] become-prefix-leader does not work if there is producer active on the target member Created: 19/May/17  Updated: 25/Jul/23  Resolved: 19/May/17

Status: Resolved
Project: controller
Component/s: clustering
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Vratko Polak Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 8514

 Description   

Robot sees [0] this and reports:
java.lang.IllegalArgumentException: Subtree DOMDataTreeIdentifier{datastore=CONFIGURATION, root=/(tag:opendaylight.org,2017:controller:yang:lowlevel:target?revision=2017-02-15)id-ints/id-int/id-int[

{(tag:opendaylight.org,2017:controller:yang:lowlevel:target?revision=2017-02-15)id=prefix-2}

]} is attached to producer org.opendaylight.mdsal.dom.broker.ShardedDOMDataTreeProducer@2cd65513

Looking at the current implementation, PrefixLeaderHandler is using a temporary CDSDataTreeProducer, which would be targeted to an ancestor prefix of the active producer prefix.

One possible fix would be to give PrefixLeaderHandler access to ProduceTransactionsHandler (if it exists) created by produce-transactions on the same member, to use its producer (to get the shard access) instead of the temporary one.

[0] https://logs.opendaylight.org/releng/jenkins092/controller-csit-3node-clustering-only-carbon/697/archives/log.html.gz#s1-s26-t5-k2-k6-k3-k1-k4-k7-k1



 Comments   
Comment by Vratko Polak [ 19/May/17 ]

A simple workaround was identified: Use a phantom child prefix where no producer is.

Fix: https://git.opendaylight.org/gerrit/57435

Generated at Wed Feb 07 19:56:12 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.