Skip to main content

[pkg-discuss] Re: Code review: system-repository service split

  • From: Edward Pilatowicz < >
  • To:
  • Cc: Erik Trauschke < >
  • Subject: [pkg-discuss] Re: Code review: system-repository service split
  • Date: Wed, 2 Oct 2013 18:27:45 -0700

On Mon, Sep 30, 2013 at 11:57:52AM +1300, Tim Foster wrote:
> On 09/28/13 04:24 AM, Erik Trauschke wrote:
> >>http://ips.java.net/webrev/timf/sysrepo-svc-split-webrev/
> >
> >My SMF foo is weak but can you ahve circular dependencies in SMF services?
> >You system-repo service depends on the the cache cleaning service and
> >vice-versa.
>
> We're actually making the system-repository-cache a dependent here.
> So we don't have circular dependencies:
>
> # svcs -d system-repository
> STATE          STIME    FMRI
> online         Sep_27   svc:/milestone/network:default
> online         Sep_27   svc:/system/filesystem/local:default
> online          9:50:06 svc:/system/filesystem/autofs:default
> # svcs -D system-repository
> STATE          STIME    FMRI
> online         Sep_27   svc:/application/pkg/zones-proxyd:default
>
> whereas:
>
> # svcs -d system-repository-cache
> STATE          STIME    FMRI
> online         Sep_27   svc:/milestone/network:default
> online         Sep_27   svc:/system/filesystem/local:default
> online          9:50:06 svc:/system/filesystem/autofs:default
> online         10:35:50 svc:/application/pkg/system-repository:default
> # svcs -D system-repository-cache
> STATE          STIME    FMRI
> #
>
> I suppose there's no reason for us to declare the cache service as a
> dependent there given we're in control of the
> system-repository-cache manifest as well, and the system-repository
> service manually starts the cacheclean service in its method script
> if necessary.
>
> Because there's no dependency on the system-repository-cache, it
> does mean that we can have this situation:
>
> # svcs *system-repository*
> STATE          STIME    FMRI
> disabled       11:23:18 svc:/application/pkg/system-repository-cache:default
> online         11:01:33 svc:/application/pkg/system-repository:default
>
> where a rogue admin has disabled the cache service and nothing
> decides the system is broken.
>
> This is where rolling htcacheclean back into the system-repository
> service in a separate contract service seems like a better idea, but
> I've been unable to find ways to have both 'svcs -p
> system-repository' show the htcacheclean service _and_ have ctrun(1)
> gracefully restart a killed htcacheclean process. :-(
>

for the system-repository-cache service why don't we:

- deliver it as always enabled
- mark the dependency on the system-repository service as
  grouping=optional_all and restart_on='refresh'

then when the system-repository-cache service start method runs we know
that either:

- the system-repository is online, in which case we start htcacheclean
- the system-repository is disabled, in which return
  SMF_EXIT_TEMP_TRANSIENT

that way htcacheclean will get automatically enabled whenever the
system-repository service gets started.

ed


[pkg-discuss] Re: Code review: system-repository service split

Edward Pilatowicz 10/03/2013

[pkg-discuss] Re: Code review: system-repository service split

Tim Foster 10/03/2013

[pkg-discuss] Re: Code review: system-repository service split

Edward Pilatowicz 10/04/2013
 
 
Close
loading
Please Confirm
Close