Fatih Mehmet ARSLAN created NIFI-15255:
------------------------------------------
Summary: Docker image still uses legacy start.sh/common.sh with
broken prop_add_or_replace (related to #NIFI-14575)
Key: NIFI-15255
URL: https://issues.apache.org/jira/browse/NIFI-15255
Project: Apache NiFi
Issue Type: Bug
Components: Docker
Affects Versions: 2.6.0
Reporter: Fatih Mehmet ARSLAN
*Summary*
The NiFi Docker image still includes an old {{prop_add_or_replace}} function in
{{{}start.sh/common.sh{}}}, which uses {{awk}} without specifying a file. This
causes duplicate properties in {{nifi.properties}} and sometimes a startup hang.
This does *not* occur in the upstream NiFi codebase (which no longer uses these
scripts), but it still affects the official Docker image.
----
*Problem*
Inside the Docker image:
{{property_found=$(awk -v property="${1}" 'index($0, property) == 1')}} *
{{awk}} reads from stdin instead of a real file
* Existing properties are never detected → always appended
* Results in duplicate keys like:
{{nifi.env.s3-bucket=...nifi.env.s3-bucket=...}}
NiFi 2.6.0 fails to start with:
{{Duplicate property keys with different values were detected}}
If the property does not exist, {{awk}} also waits for input → script can hang.
----
*Steps to Reproduce*
# Run NiFi via {{{}apache/nifi:2.6.0{}}}.
# Add any dynamic property in start.sh, e.g.:
{{prop_add_or_replace 'nifi.env.test' 'value'}}
# Restart container multiple times.
# Check {{{}nifi.properties{}}}.
----
*Expected*
* Detect the property if it exists.
* Replace instead of append.
* No duplicate keys.
*Actual*
* Key is always appended.
* Startup eventually fails.
----
*Suggested Fix*
Use a file-aware check:
{{if grep -q -E "^${1}=" "${target_file}"; then prop_replace "$1" "$2"
"${target_file}"elseecho "$1=$2" >> "${target_file}"fi}}
(or update Docker image to match new Java-based bootstrap logic).
----
If helpful, I can provide a PR or test a patched Docker image.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)