On Mon, Jun 12, 2017 at 7:59 PM, John D. Ament <johndam...@apache.org> wrote:
> On Mon, Jun 12, 2017 at 7:55 PM Sam Ruby <ru...@intertwingly.net> wrote:
>
>> On Mon, Jun 12, 2017 at 7:44 PM,  <johndam...@apache.org> wrote:
>> > ---
>> >  lib/whimsy/asf/svn.rb         | 11 +++++++++++
>> >  www/roster/public_podlings.rb |  7 ++++++-
>> >  2 files changed, 17 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
>> > index 134609c..64a596e 100644
>> > --- a/lib/whimsy/asf/svn.rb
>> > +++ b/lib/whimsy/asf/svn.rb
>> > @@ -141,6 +141,17 @@ module ASF
>> >        return revision, content
>> >      end
>> >
>> > +    def self.updateSimple(path)
>> > +      cmd = ['svn', 'update', path, '--non-interactive']
>>
>> This will undoubtedly fail as the $apache::user (www-data) does not
>> have write access to those directories.
>>
>
> Err so should we run cron as whimsysvn ?

That's indeed possible, but then it probably can't write to the web directory.

Also from reading, bad things can happen if two processes are updating
the same directory at the same time.  This can be fixed via file
locking.  My gitpubsub logic solves this by running the puppet agent
itself, and puppet ensures that there is only one agent running at one
time.

I learned all this the hard way on the original whimsy_vm where
directories often got 'wedged' and needed manual intervention for
cleanup.  That's why I instituted a hard separation between what can
be updated in each process.

- Sam Ruby

Reply via email to