Project

General

Profile

Actions

Bug #11620

closed

Agent segfaults when merging non-container data variables

Added by Nicolas CHARLES over 6 years ago. Updated over 6 years ago.

Status:
Released
Priority:
N/A
Category:
Agent
Target version:
Severity:
Major - prevents use of part of Rudder | no simple workaround
UX impact:
User visibility:
Infrequent - complex configurations | third party integrations
Effort required:
Priority:
40
Name check:
Fix check:
Regression:

Description

Coonsider the following /var/rudder/local/properties.d/zwq10.json file

{
    "env":"PROD10IT",
    "foo":"plop" 
}

Running the agent causes a segfault:

rudder    debug: Iteration engine finished   ---   WARPING OUT
rudder    debug: DeRefCopyPromise(): promiser:'namespace[${sorted_files}]'
rudder    debug: DeRefCopyPromise():     copying constraint: 'slist'
rudder    debug: Starting iteration engine with 2 wheels   ---   ENTERING WARP SPEED
rudder    debug: Evaluating function: getindices("property_${file_id[${sorted_files}]}")
rudder    debug: Evaluating vars promise: namespace[/var/rudder/cfengine-community/inputs/common/1.0/../../properties.d/aproperties.json]
rudder    debug: Evaluating function: getindices("property_${file_id[${sorted_files}]}")
rudder    debug: Evaluating vars promise: namespace[/var/rudder/cfengine-community/inputs/common/1.0/../../properties.d/properties.json]
rudder    debug: Evaluating function: getindices("property_${file_id[${sorted_files}]}")
rudder    debug: Evaluating vars promise: namespace[/var/rudder/cfengine-community/inputs/common/1.0/../../properties.d/zroperties.json]
rudder    debug: Evaluating function: getindices("property_${file_id[${sorted_files}]}")
rudder    debug: Evaluating vars promise: namespace[/var/rudder/local/properties.d/10.json]
rudder    debug: Evaluating function: getindices("property_${file_id[${sorted_files}]}")
rudder    debug: Evaluating vars promise: namespace[/var/rudder/local/properties.d/properties.json]
rudder    debug: Evaluating function: getindices("property_${file_id[${sorted_files}]}")
rudder    debug: Evaluating vars promise: namespace[/var/rudder/local/properties.d/zwq10.json]
rudder    debug: Iteration engine finished   ---   WARPING OUT
rudder    debug: DeRefCopyPromise(): promiser:'node.${namespace[${sorted_files}]}'
rudder    debug: DeRefCopyPromise():     copying constraint: 'data'
rudder    debug: Starting iteration engine with 2 wheels   ---   ENTERING WARP SPEED
rudder    debug: Evaluating function: parsejson("{}")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: parsejson("{}")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: parsejson("{}")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: parsejson("{}")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: parsejson("{}")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: parsejson("{}")
rudder    debug: Evaluating vars promise: node.env
rudder    debug: Evaluating function: parsejson("{}")
rudder    debug: Evaluating vars promise: node.foo
rudder    debug: Iteration engine finished   ---   WARPING OUT
rudder    debug: DeRefCopyPromise(): promiser:'node.${namespace[${sorted_files}]}'
rudder    debug: DeRefCopyPromise():     copying constraint: 'data'
rudder    debug: Starting iteration engine with 3 wheels   ---   ENTERING WARP SPEED
rudder    debug: Evaluating function: mergedata("node.${namespace[${sorted_files}]}","property_${file_id[${sorted_files}]}[${namespace[${sorted_files}]}]")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: mergedata("node.${namespace[${sorted_files}]}","property_${file_id[${sorted_files}]}[${namespace[${sorted_files}]}]")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: mergedata("node.${namespace[${sorted_files}]}","property_${file_id[${sorted_files}]}[${namespace[${sorted_files}]}]")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: mergedata("node.${namespace[${sorted_files}]}","property_${file_id[${sorted_files}]}[${namespace[${sorted_files}]}]")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: mergedata("node.${namespace[${sorted_files}]}","property_${file_id[${sorted_files}]}[${namespace[${sorted_files}]}]")
rudder    debug: Evaluating vars promise: node.properties
rudder    debug: Evaluating function: mergedata("node.${namespace[${sorted_files}]}","property_${file_id[${sorted_files}]}[${namespace[${sorted_files}]}]")
Segmentation fault

Version: Rudder agent 4.1.7-jessie0 (CFEngine Core 3.10.2)

Actions

Also available in: Atom PDF