Skip to content

fix: check Exclusive Owner conflicts by O-to-T output assembly#594

Open
MrAlaskan wants to merge 1 commit into
EIPStackGroup:masterfrom
MrAlaskan:fix/appcontype-exclusive-owner-conflict-output-assembly
Open

fix: check Exclusive Owner conflicts by O-to-T output assembly#594
MrAlaskan wants to merge 1 commit into
EIPStackGroup:masterfrom
MrAlaskan:fix/appcontype-exclusive-owner-conflict-output-assembly

Conversation

@MrAlaskan

Copy link
Copy Markdown

Summary

This PR fixes the Exclusive Owner ownership conflict check so that conflicts are detected per O-to-T output assembly, which is the actual control point for an Exclusive Owner I/O connection.

Problem

The current implementation matches an Exclusive Owner path combo using the configured output assembly against consumed_path.instance_id and the input assembly against produced_path.instance_id, which is consistent with the connection point semantics in appcontype.c.

However, the subsequent ownership conflict check calls GetConnectedOutputAssembly(connection_object->produced_path.instance_id), and GetConnectedOutputAssembly() also compares against produced_path.instance_id. As a result, the code effectively checks for an existing Exclusive Owner on the same T-to-O input assembly instead of the same O-to-T output assembly.

This contradicts the local data model and comments in appcontype.c, where output_assembly is documented as the O-to-T point and Exclusive Owner is described as allowing only one connection per O-to-T point.

Changes

  • Pass consumed_path.instance_id to GetConnectedOutputAssembly() when checking for an existing Exclusive Owner connection.
  • Update GetConnectedOutputAssembly() to match active Exclusive Owner connections by consumed_path.instance_id instead of produced_path.instance_id.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant