On Jun 9, 2010, at 11:25 AM, Nigel Kersten wrote:



On Wed, Jun 9, 2010 at 7:41 AM, Luke Kanies <[email protected]> wrote:
On Jun 9, 2010, at 10:32 AM, Markus Roberts wrote:

Hmmm.  The problem should probably be addressed at the creation site,
by making it recursive, since the per-user case:

        conf = File.expand_path("~/.puppet")
        var = File.expand_path("~/.puppet/var")
+        varparent = File.expand_path("~/")

is now a three way race condition and the system-wide case

        # Else, use system-wide directories.
        conf = "/etc/puppet"
        var = "/var/lib/puppet"
+        varparent = "/var/lib"

doesn't handle the (admittedly far less likely) case when /var doesn't
exist.   Also, the varparent would be created even if they changed the
var dir, leading to potentially the same failure as before but now
with the optional creation of a directory at the default location.

I'd advocate a mkdir -p style solution, unless anyone can see problems
with that.


Well, I would say that we should either be localizing or not. We're now defaulting to a value that works great for the linux world but doesn't even work in the non-linux world.

IMO, it's a far larger bug to mkdir -p /var/lib on, say, OS X and AIX than to just have a case statement that localizes for a few basic OS choices.


Ugh. This is frustrating.

Defaulting to /var/puppet is more correct on OS X.

How many platforms is this an issue for? I assume all the commercial *nixes ?


I would assume so, also.

A big part of it is the packaging - most of the packagers fix this in the packaging process, and so we didn't actually think it'd be much of a change, but obviously that was wrong.

--
Humphrey's Law of the Efficacy of Prayer:
    In a dangerous world there will always be more people around whose
    prayers for their own safety have been answered than those whose
    prayers have not.
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups "Puppet 
Developers" 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-dev?hl=en.

Reply via email to