Bug #564
Puppet replaces + (plus) signs with spaces in a template
| Status: | Closed | Start date: | ||
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 0% |
||
| Category: | - | |||
| Target version: | 0.25.0 | |||
| Affected Puppet version: | 0.25.4 | Branch: | ||
| Keywords: | ||||
| Votes: | 0 |
Description
To reproduce:
Create a template file with + signs in (eg an Apache ssl.conf file). Have Puppet deploy the template to a machine The + signs in the file have been replaced with spaces, making the file invalid.
History
Updated by Eric Eisenhart over 4 years ago
Related to #660?
Updated by Luke Kanies over 4 years ago
I suspect that this is a problem with using ruby 1.8.1, and specifically using it on one side of a connection but not on the other. Can anyone experiencing this problem confirm that it happens with 1.8.1 but not with other versions?
Updated by Matt Palmer over 4 years ago
I can actually confirm that it’s not 1.8.1-specific — I’ve seen it happen on machines running either Ubuntu Breezy (1.8.2) or Dapper (1.8.4), but I don’t remember which. It might be a version-mismatch problem, sure, but it’s not the involvement of 1.8.1 that’s causing the problem.
Updated by Luke Kanies over 4 years ago
I can’t reproduce the problem, so I need someone who can consistently do so to help me debug it. Any volunteers?
Does it only happen when using networking, making it likely to be an escaping problem, or does it always happen? Is it only templates, or all strings?
Updated by Matt Palmer over 4 years ago
I’m not 100% sure, but I think I’ve had it happen both in files included in the manifest via template(), and also by source => puppet:// file copying. It definitely happens on a regular basis when included via template().
The problem, to my mind, has to be somewhere in the CGI escaping/unescaping. After all, a plus is nothing more than a URL-encoded space. A good way to test that would be to put something like %20 in a file that’s being unplussed, and see if it turns into a space as well — or %23 and see if it turns into a #. I’ll try and remember to do that next time I notice the problem on a machine. Other volunteers are welcome to try it in the meantime, of course.
Updated by Luke Kanies over 4 years ago
I just tested this on a debian server (ruby 1.8.5 (2006-08-25) [i486-linux]) and OS X client (ruby 1.8.2 (2004-12-25) [powerpc-darwin8.0] and ruby 1.8.5 (2006-08-25) [powerpc-darwin8.0.0]).
Can anyone find specific examples that consistently produce this problem?
Updated by Luke Kanies over 4 years ago
I can’t reproduce this, and I can’t find anyone who can consistently do so, which means it’s impossible for me to fix this for the next release. I’m delaying it until elmo (and even then, I need someone who can test fixes or I can’t fix it).
Updated by Luke Kanies about 4 years ago
- Status changed from 1 to Closed
- 7 set to worksforme
I’m considering this a ruby problem and not fixable by me. If someone can consistently reproduce it and track it down, please do.