|
Description
|
Suppose there exist service "A" and service "B" such that "A" depends on nothing but "B" depends on "A". In another word, "A" is a dependency for "B" and "B" is a dependent for "A". If "A"'s manifest does not define "dependent" for "B" but "B"'s manifest defines "dependency" for "A", or if "A"'s manifest defines "dependent" for "B" and "B"'s manifest also defines "dependency" for "A", then everything works as designed. However, if "A"'s manifest defines "dependent" for "B" but "B"'s manifest does not define "dependency" for "A", then when "B" is removed via "svccfg delete", "svcs -D A" correctly shows no dependents for "A", yet when, "B" is reinstalled via "svccfg import", "svcs -D A" incorrectly shows no dependents for "A" and "svcs -D B" incorrectly shows no dependencies for "B".
To illustrate this bug, we conducted the following test on a machine running Solaris 10 08/07 (U4) Sparc.
# svccfg -v import sada-service-a-2.xml
...
#
# svccfg -v import sada-service-b-2.xml
...
#
# svcs -D sada-service-a
STATE STIME FMRI
disabled 14:54:05 svc:/test/sada-service-b:default
# svcs -d sada-service-b
STATE STIME FMRI
disabled 14:53:46 svc:/test/sada-service-a:default
#
# svccfg -v delete sada-service-b
#
# svcs -D sada-service-a
STATE STIME FMRI
#
# svccfg -v import sada-service-b-2.xml
...
#
# svcs -D sada-service-a
STATE STIME FMRI
# svcs -d sada-service-b
STATE STIME FMRI
#
# svcadm -v refresh sada-service-a
...
# svcadm -v refresh sada-service-b
...
#
# svcs -D sada-service-a
STATE STIME FMRI
# svcs -d sada-service-b
STATE STIME FMRI
#
|