Sevag Keosseian created NIFI-16229:
--------------------------------------
Summary: Clustered Parameter Context update rejects inherited
asset-backed Parameter
Key: NIFI-16229
URL: https://issues.apache.org/jira/browse/NIFI-16229
Project: Apache NiFi
Issue Type: Bug
Components: Core Framework
Affects Versions: 2.11.0
Environment: Observed in clustered Apache NiFi 2.11.0 behavior.
Reproduced using the NiFi system-test framework in a two-node cluster. The
equivalent standalone system test succeeds.
Reporter: Sevag Keosseian
A Parameter Context update fails in clustered NiFi when an existing child
Parameter Context is updated to inherit a parent containing an asset-backed
Parameter.
Steps to reproduce:
1. Create a parent Parameter Context with a Parameter such as `Key File`.
2. Upload an Asset to the parent context and configure `Key File` to reference
it.
3. Create a separate child Parameter Context.
4. Update the child to inherit the parent.
Expected behavior:
The child inherits the Parameter and can use the Asset owned by the source
parent context.
Actual behavior:
The clustered update fails with an error similar to:
`Parameter [Key File] is not allowed to reference asset [key.p8] which does not
belong to parameter context [child-context-id]`
The initial update calculates the inherited effective Parameter correctly. In
clustered mode, the enriched DTO is replicated to the nodes and effective
Parameter updates are calculated a second time. The existing logic infers that
a Parameter is inherited when it is absent from the incoming DTO. Because the
first pass inserts the inherited Parameter into the DTO, the second pass
incorrectly reclassifies it as local. Asset ownership validation then rejects
the parent-owned Asset as though it were referenced by a locally defined child
Parameter.
Standalone NiFi succeeds because the update does not use the replicated cluster
path.
The proposed correction is to classify a non-null effective Parameter using its
source Parameter Context ID rather than DTO membership. A Parameter is
inherited when its source context differs from the context being updated.
Existing handling for effective Parameter removals remains unchanged.
Regression coverage should include both standalone and clustered updates,
repeated submission of the effective DTO, removal of an inherited asset
context, and rejection of a genuinely local Parameter referencing an Asset
owned by another context.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)