On Sun, Jun 11, 2017 at 1:22 PM Sam Ruby <ru...@intertwingly.net> wrote:

> On Sun, Jun 11, 2017 at 12:53 PM, John D. Ament <johndam...@apache.org>
> wrote:
> > I decided to sleep on this before running into a response.
>
> My apologies if I caused any offense.
>
>
You didn't.  Understand, I have mostly a Java/.NET background, and most of
the scripting work I've done is in python.  But I don't write full blown
apps in Python, so I'm trying to figure out what the right approach would
be in my mind with the limited ruby experience I have.


> > On Sat, Jun 10, 2017 at 11:22 AM Sam Ruby <ru...@intertwingly.net>
> wrote:
> >
> >> On Sat, Jun 10, 2017 at 11:10 AM, John D. Ament <johndam...@apache.org>
> >> wrote:
> >> > Unless someone objects, I'm going to introduce a shell script that
> >> executes
> >> > the contents of the cron jobs.  I'm then going to raise a PR to infra
> to
> >> > update this section
> >> >
> >>
> https://github.com/apache/infrastructure-puppet/blob/deployment/modules/whimsy_server/manifests/init.pp#L70
> >> > to
> >> > include a call to said script.
> >>
> >> Not an objection, but thinking out loud.
> >>
> >> Some of those cronjobs are lightning fast.  Others may take a while
> >> and consume network or CPU resources.
> >>
> >> For the fast ones, I find it mildly amusing that they use whimsy/asf
> >> library functions and capture the result in JSON, and you are parsing
> >> the JSON instead of using the same library functions.  What this means
> >> is that you get stale data when you have ready access to fresher data.
> >
> > Do you have a concrete list of these?  I often find arbitrary statements
> > like this hard to follow, mostly because of how unfamiliar I am with
> > something, in this case Whimsy.
>
> Again, my apologies... I misread the code.  You are using the library
> functions.
>
>
No, you're fine.  I had no idea you were referring to anything of mine.


> >> For the slow ones, I don't think it is appropriate to run then after
> every
> >> push.
> >>
> > Again, having a list of these would be useful.  i'm not sure I can judge
> > without having all of the information.
>
> The one that I am most familiar with is the site scan.  Sebb can
> comment on others.
>
> >> What I would suggest instead is a CGI script that lists the cron jobs
> >> that are runnable under the apache web server user id, and gives you a
> >> button that you can push that will run that specific job on request.
> >> What this would enable is for anybody (or perhaps just ASF members?)
> >> to rerun the script at will.
> >>
> > No, specifically I disagree with this kind of approach.  If we're going
> to
> > follow an automatic deploy pattern, the application needs to be self
> > healing.  If there's manual intervention something's wrong.  Yesterday we
> > got stuck because:
>
> If the sum total of running all of the cron jobs is multiple minutes
> of elapsed time, running this list of programs every time in order to
> reduce the time window where data is out of sync seems like overkill.
> It may also result in the one item that you are looking for to run to
> actually be run later than expected.  I'm also concerned a bit about
> these scripts possibly running at the same time as the cron jobs.
>
>
Agreed.  We want deployments to be fast.  Low downtime.  Do we bounce
apache on deploy? I didn't see anything.


> I am also aware that at times there are problems that only show up in
> production, and we may find ourselves wanting to run scripts because,
> for example, LDAP has been updated.
>
> > - SVN repo list is cached in the app (but not in cron)
> > - The cron jobs happened to run in such an order that the svn update
> > happened after public_podlings.json was generated
> >
> > What I'm actually now thinking is that we should implement two bug fixes:
> >
> > - in ASF::SVN if the repo doesn't exist, reload the repository.yml file
> and
> > try again.
>
> +1
>
> > - in some scripts, make sure that any repos you need are up to date
> (rather
> > than rely on the svn update cron)
>
> Absolutely.  Operative words: some scripts.  The question often comes
> down to whether it is worthwhile to have less stale information later
> or have quicker (but sometimes more stale) data responses.
>

Right - so the immediate one I can think of (and subject of all this) is
when public_podlings.rb runs make sure it does an svn update (and maybe
that can be a flag) of the incubator-content and now incubator-podlings svn
repos to ensure it has all of the latest info.


>
> Some tools, like the board agenda tool, opt to show possibly stale
> data quickly and immediately get fresher data and update if necessary.
>
> > Thoughts?
>
> - Sam Ruby
>
> >> I'd start by parsing the whimsy_server/manifests/cronjobs.pp.
> >>
> >> > John
> >> >
> >> > On Sat, Jun 10, 2017 at 8:58 AM John D. Ament <johndam...@apache.org>
> >> wrote:
> >> >
> >> >> I just pushed up a change that requires a change to the podlings.json
> >> >> file.  However, that file is only generated in cron.  I was wondering
> >> if it
> >> >> made sense that on deploy, to run a script that would regenerate the
> >> static
> >> >> files?
> >> >>
> >> >> John
> >>
> >> - Sam Ruby
> >>
>

Reply via email to