Bug #12674
closed
Policies regeneration error when using a parameters with " char
Added by Vincent DAVY over 6 years ago.
Updated over 6 years ago.
Category:
Web - Config management
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
- Related to Bug #12101: Escaping issue in Users Technique Parameter added
Using a single quote ' works. Using a double quote " is giving errors
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.
- Project changed from Rudder websites to Rudder
- Target version set to 410
This happens only in Rudder 4.3 (works as expected in 4.1 and 4.2)
- Target version changed from 410 to 4.2.7
actually, 4.2.5 is broken also (4.2.4 is fine)
- Related to Bug #12390: (breaking change) In Windows Agent, a '\' in a directive parameter value is escaped but it should not added
This is most likely introduced by #12390
- Status changed from New to In progress
- Assignee set to François ARMAND
- 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
In windows, it does nothing as we don't have a "rudder-parameters" file.
- Assignee changed from Nicolas CHARLES to François ARMAND
- Status changed from Pending technical review to Pending release
- Target version changed from 4.2.7 to 4.2.6
- 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.
- Category set to Web - Config management
Also available in: Atom
PDF