Bug #12674
closedPolicies regeneration error when using a parameters with " char
Description
If I create a parameter (in menu "Configuration policy > Parameters") with a value containing a " char, and then I use the parameter in a directive, I got a policies regeneration error.
Here is a sample :
Policy update error for process '197' at 2018-05-22 10:12:35 <- Cannot write configuration node <- Exit code=1 for hook: '/opt/rudder/etc/hooks.d/policy-generation-node-ready/10-cf-promise-check'. stdout: error: There are syntax errors in policy files stderr: '/var/rudder/share/fae5f18c-a543-4ed2-9a74-0a8991017bbf/rules.new/cfengine-community/common/1.0/rudder-parameters.cf:42:27: error: syntax error "test" string => "'"toto"'"; ^ /var/rudder/share/fae5f18c-a543-4ed2-9a74-0a8991017bbf/rules.new/cfengine-community/common/1.0/rudder-parameters.cf:42:27: error: Check previous line, Expected ',', got 'toto' "test" string => "'"toto"'"; ^ /var/rudder/share/fae5f18c-a543-4ed2-9a74-0a8991017bbf/rules.new/cfengine-community/common/1.0/rudder-parameters.cf:42:30: error: Expected promiser string, got '"'"' "test" string => "'"toto"'";
The global log is attached to this report.
I got the error after a upgrade from 4.3.0 rc to 4.3.1 installed through debian packages.
Seems to be a bit equivalent to this : https://www.rudder-project.org/redmine/issues/12101
Files
Updated by Alexis Mousset over 6 years ago
- Related to Bug #12101: Escaping issue in Users Technique Parameter added
Updated by Vincent DAVY over 6 years ago
Using a single quote ' works. Using a double quote " is giving errors
Updated by Vincent DAVY over 6 years ago
Here is a step by step guide to reproduce (please apologize my frenglish) :
1. Install Rudder in a Virtualbox following this guide using a Debian 9 base OS
2. Login into Rudder interface with admin password
3. Go to "Configuration policy > Parameters", create a "test" parameter and enter a value with a double quote (example : "toto")
4. Go to "Configuration policy > Directives", create a new "File content" directive with a file path /root/toto and use ${rudder.param.test} for file content (referencing the created param)
5. Go to "Configuration polocy > Rules" and create a new rule using the previously created directive and applying it on all nodes (for exemple)
6. Check the status with the heart logo in the top right corner near the "documentation" link : the heart is sick with a red cross on it asking you to check the status, click on it
7. You got an "Error during policy update"
8. click on "Details". You got this error :
⇨ Policy update error for process '6' at 2018-05-22 12:05:19 ⇨ Cannot write configuration node ⇨ Exit code=1 for hook: '/opt/rudder/etc/hooks.d/policy-generation-node-ready/10-cf-promise-check'. stdout: stderr: '/var/rudder/cfengine-community/inputs.new/common/1.0/rudder-parameters.cf:49:740: error: syntax error "test" string => "test""; ^ /var/rudder/cfengine-community/inputs.new/common/1.0/rudder-parameters.cf:49:740: error: Check previous line, Expected ';', got '"; }
You can get the full error in the logs (Menu "Utilities > Event logs")
Hope this guide can help.
Updated by François ARMAND over 6 years ago
- Project changed from Rudder websites to Rudder
Updated by Nicolas CHARLES over 6 years ago
- Target version set to 410
This happens only in Rudder 4.3 (works as expected in 4.1 and 4.2)
Updated by Nicolas CHARLES over 6 years ago
- Target version changed from 410 to 4.2.7
actually, 4.2.5 is broken also (4.2.4 is fine)
Updated by Nicolas CHARLES over 6 years ago
- Related to Bug #12390: (breaking change) In Windows Agent, a '\' in a directive parameter value is escaped but it should not added
Updated by Nicolas CHARLES over 6 years ago
This is most likely introduced by #12390
Updated by François ARMAND over 6 years ago
- Status changed from New to In progress
- Assignee set to François ARMAND
Updated by François ARMAND over 6 years ago
- Status changed from In progress to Pending technical review
- Assignee changed from François ARMAND to Nicolas CHARLES
- Pull Request set to https://github.com/Normation/rudder/pull/1941
Updated by François ARMAND over 6 years ago
In windows, it does nothing as we don't have a "rudder-parameters" file.
Updated by Rudder Quality Assistant over 6 years ago
- Assignee changed from Nicolas CHARLES to François ARMAND
Updated by François ARMAND over 6 years ago
- Status changed from Pending technical review to Pending release
Applied in changeset rudder|d30fdc8f8158a4e5b26ed87c8cb65c088849e7f3.
Updated by Vincent MEMBRÉ over 6 years ago
- Target version changed from 4.2.7 to 4.2.6
Updated by Benoît PECCATTE over 6 years ago
- Status changed from Pending release to Released
This bug has been fixed in Rudder 4.2.6 and 4.3.1 which were released today.
- 4.2.6: Announce Changelog
- 4.3.1: Announce Changelog
- Download: https://www.rudder-project.org/site/get-rudder/downloads/
Updated by Vincent MEMBRÉ over 6 years ago
- Category set to Web - Config management