David Finberg wrote:
> I'm seeing some surprising (to me) behavior on scf_simple_prop_get, 
> and I was looking for an explanation.
>
> say I have some service, and I do
>     prop = scf_simple_prop_get(NULL, NULL, "config", "testval");
>     if (prop) {
>         if ((val = scf_simple_prop_next_boolean(prop)) != NULL)
>
> inside my service's executable.  What happens if svccfg is used to 
> change config/testval, the change is not committed via a refresh, but 
> my service dies and restarts.
>
Hi Dave,

The new property value not committed via a refresh is stored in the 
repository as an 'editing' property. The next svcadm refresh will use 
the editing property values to update the running snapshot.

> What I expected was that the old, i.e. the running (svcprop -s running 
> -p config/testval) state would be returned.  But instead, the current 
> state of the repository is returned.  Is this the right behavior?  And 
> is there some simple explanation of why I want that in this case, 
> since I guess my intuition is way off here.
It's the expected behavior though a bit confusing. If you always want to 
read from the running state(snapshot), use the 
scf_instance_get_pg_composed interface with a running snapshot argument. 
See enable_fmri_rec in cmd/svc/svcadm/svcadm.c.

-tony

Reply via email to