On Wed, Oct 29, 2008 at 12:30 PM, Jeff Oliver
<[EMAIL PROTECTED]> wrote:
>
> Garrett Cooper wrote:
>
> On Wed, Oct 29, 2008 at 10:28 AM, Scott James Remnant
> <[EMAIL PROTECTED]> wrote:
>
>
> On Wed, 2008-10-29 at 10:03 -0700, Garrett Cooper wrote:
>
>
>
> reload is to reload all job definitions from disk, it's really quite
> expensive compared to start - which just changes a job state.
>
>
> What I meant is overall initctl reload uses up a large amount of
> resources; I was just wondering if there was a more lightweight
> alternative planned because we may potentially be reloading the
> configuration frequently, in such a case it wouldn't make sense to
> reload all of the files necessarily -- just the ones that have
> changed.
>
>
>
> Reload is intentionally expensive.  It is a complete flush and reload of
> the internal state.
>
>
>
>  We
> currently use initctl reload for getting new jobs loaded into upstart
> init; however, I was wondering whether or not:
> 1. The method of getting new job definitions was the best choice.
>
>
>
> Upstart should reload them itself by watching the directory with
> inotify.
>
>
> Hmm... ok. So this isn't implemented, but it's slated?
>
>
>
> This is absolutely implemented, and has been since the earliest versions
> of Upstart.
>
> Scott
>
>
> So maybe implementing a subcommand like `initctl update' or `initctl
> refresh' would be a good thing to do, such that it wouldn't touch the
> state of unchanged jobs, but just update and append any missing data
> and delete stale job info from the upstart's core job data. It seems
> like one could do this properly, and avoid a lot of overhead.
>
> On the other hand, maybe the actual issue is that inotify isn't be
> used properly within upstart. After reading through the manpage
> description it appears that there are a number of items for filesystem
> access that are available via inotify. inotify shouldn't be an
> expensive operation and should be an indicator as to whether or not
> the configuration data should be reloaded (maybe) for refreshing the
> core job data and potentially state.
>
> The last item's a conjecture and I need to hunt through the code to
> see where it's implemented to see whether or not that's actually the
> case.
>
> Thanks!
> -Garrett
>
>
>
> From what I understand, inotify does the job as it should, no longer
> requiring the use of initctl reload at all in normal use.  The "typical" use
> cases of initctl reload allows it to be an expensive operation.
>
> Are you implying that your new jobs are not showing up in the list as you
> create them?
>
> Jeff Oliver

NOW I understand why the original test writer did what he did.

Ok... So basically what is happening is we are using TFTPboot + NFS to
execute testcases, and because inotify isn't capable of detecting NFS
server filechanges, the new file would go onto the targets NFS area
unnoticed.

I discovered a quick, inexpensive workaround for this issue though,
which is to touch the jobfiles after a copy on the target, which
forces upstart to reread the file and as such initctl reload isn't
required (YAY!) :)...

-Garrett

-- 
upstart-devel mailing list
upstart-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/upstart-devel

Reply via email to