46 lines
1.9 KiB
Markdown
46 lines
1.9 KiB
Markdown
[[!meta title="Puppet empties new and existing files"]]
|
|
|
|
After [we](http://sans.ethz.ch) changed our puppetmaster to run
|
|
under unicorn plus nginx and the first 2.6.0 client connected,
|
|
I realised that puppetd created empty files on the client.
|
|
Not even new files created are affected, but also existing
|
|
files.
|
|
|
|
It seems that [issue 4319](http://projects.puppetlabs.com/issues/4319)
|
|
is related to that problem, as the same entries are found in the
|
|
logfile.
|
|
|
|
The [[client reports about|debuglog]] duplicated files in the filebucket:
|
|
|
|
info: FileBucket got a duplicate file /etc/pam.d/common-password ({md5}d41d8cd98f00b204e9800998ecf8427e)
|
|
info: FileBucket got a duplicate file /etc/pam.d/common-account ({md5}d41d8cd98f00b204e9800998ecf8427e)
|
|
info: FileBucket got a duplicate file /etc/pam.d/common-auth ({md5}d41d8cd98f00b204e9800998ecf8427e)
|
|
|
|
But hey, they are duplicate, because they all have the same checksum!
|
|
And the checksum is everywhere the same, because all files are empty:
|
|
|
|
% touch test
|
|
% md5sum test
|
|
d41d8cd98f00b204e9800998ecf8427e test
|
|
|
|
In the syslog of the puppetmaster one can see
|
|
|
|
Oct 1 14:31:14 sans-puppetca puppetmaster_unicorn: 129.132.85.166 - - [01/Oct/2010 14:31:14] "GET /production/file_content//autofs/auto.net HTTP/1.0" 404 44 0.0012
|
|
|
|
So in essence, what happens is:
|
|
|
|
* puppetd 2.6.0 submits two slashes in the path (//)
|
|
* puppetmaster via unicorn does not find the file, because of the double slash
|
|
* puppetd sees the 404 error and creates a empty file
|
|
|
|
Switching to webbrick as a workaround works, because it accepts the two slashes.
|
|
|
|
Replacing the two slashes with one in the server does not fix the origin
|
|
of the problem, nor does it address the issue that puppetd creates
|
|
empty files, if it gets a 404 for the file content.
|
|
|
|
# Update #1
|
|
|
|
I switched over to use [[cdist|software/cdist]] instead of Puppet.
|
|
|
|
[[!tag config eth unix]]
|