Hi SMF experts,

I noticed an unexpected behavior regarding the SMF service dependency update 
when I tried
to backward-bfu away from the project bits. Specifically, a new 
datalink-management
service is introduced by our project, and its manifest defines network/physical 
service as
its dependent. In the backward bfu, we use the existing smf_delete_manifest() 
function [1]
to delete the datalink-management service, and expect the dependency between
datalink-management and network-physical would also be removed.

But the reboot after bfu shows that although datalink-management service 
instance is
successfully removed, the network-physical still has the dependency on the
datalink-management service ("svcs -d network/physical" does not show that 
dependency, but
svcs -xv output shows that the state of the network-physical service instance 
is now
offline because "Dependency svc:/network/datalink-management is absent". A 
"svcadm
refresh" fixes the problem.

Note that before I made the changes described in [1] (see below), everything 
works fine in
the global zone. So I guess this is something to do with the SVCCFG_REPOSITORY 
setting I
added.

My question is, is the fix we proposed for 6647203 the correct way to remove a 
service
(both in global and non-global zone)? If it is not, what would be the correct 
fix?

Thanks
- Cathy

--------------

[1] Because of bug 6647203, we changed the smf_delete_manifest() function to 
have
SVCCFG_REPOSITORY set before "svccfg delete":

smf_delete_manifest() {
         (
                 mfst=$1
                 cd $root
                 [ -f $mfst ] || return;
                 if [ -r /etc/svc/volatile/repository_door ]; then
                         ENTITIES=`/tmp/bfubin/svccfg inventory $mfst`
                         for fmri in $ENTITIES; do
---->                           SVCCFG_REPOSITORY=$root/etc/svc/repository.db \
                                   /tmp/bfubin/svccfg delete -f $fmri   
                         done
                 fi
                 rm $mfst
         )
}



Reply via email to