Issue #15062 has been updated by Mariusz Gronczewski.

Enforcing utf8 would break any binary data that is feed to "content" parameter, 
and it's not only templates.
For example we use content for passing crypto keys so no other node can read 
it, using source doesnt work very well because each client would have to have 
ACL for their content or else all clients can read anything from fileserver. 
Also some config files require to use specific encoding (or even binary 
command) in some parts of it, while rest of it (comments etc) is UTF-8 and it's 
not always feasible to fix it (like some non-free software).

IMO it should pass data "as is" + add iconv function with optional "ignore 
invalid characters" option
----------------------------------------
Bug #15062: puppet fails if template contains invalid utf-8
https://projects.puppetlabs.com/issues/15062#change-69040

Author: Chris Price
Status: Needs Decision
Priority: Normal
Assignee: eric sorenson
Category: templates
Target version: 
Affected Puppet version: 2.7.16
Keywords: character encoding binary utf8
Branch: 


If you attempt to use a file resource with a 'content' parameter pointing at a 
template, and the template contains binary content, you may get an error like 
this:

    Error: Failed to apply catalog: Parameter content failed: Munging failed 
for value ...
    invalid byte sequence in UTF-8

I've reproduced the failure in 2.7.16 and 3.x, though the error messages differ 
slightly between the two (and also depending on whether you repro via 'apply' 
or via master/agent run).

I'm attaching the binary file that I'm using to repro.  Save it into a 
directory structure like this:

    modules/mymod/templates/mytemplate.erb

Add the "modules" directory to your module path and then you can repro with the 
following manifest:

    file { "/tmp/myfile":
        mode => 755,
        content => template("mymod/mytemplate.erb"),
    }

Note that if you use the 'source' parameter rather than the 'content' parameter 
(and avoid calling the template function), the manifest can be applied 
successfully; so the issue is when bringing in binary data as a string.



 


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to