OpenSolaris

Printable Version Enter a New Search
Bug ID 6630105
Synopsis *svccfg* delete should not remove external dependencies
State 10-Fix Delivered (Fix available in build)
Category:Subcategory utility:smf
Keywords dependency | dependent | import | rtiq_reviewed | service | smf | svccfg
Responsible Engineer Renaud Manus
Reported Against solaris_10
Duplicate Of
Introduced In solaris_10
Commit to Fix snv_85
Fixed In snv_85
Release Fixed solaris_nevada(snv_85) , solaris_10u6(s10u6_01) (Bug ID:2157188)
Related Bugs 6687864 , 6221374
Submit Date 15-November-2007
Last Update Date 12-March-2008
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
  #
Work Around
A workaround exist such that dependent services must define "dependency" for their dependencies.
Comments
N/A