Project

General

Profile

Bug #7387

Updated by Andrew Stormont over 4 years ago

Service instances are started by graph_start_if_satisfied() in startd/graph.c.    This function calls instance_satisfied with 'satbility' set to B_FALSE (the 'satbility' flag is used to enable/disable checking for unsatisfiable dependencies) which in turn is passed to the dependency functions. 

 https://github.com/illumos/illumos-gate/blob/master/usr/src/cmd/svc/startd/graph.c#L1691 

 Unfortunately due to a bug in require_any_satisfied it always returns '1' when 'satbility' is set to B_FALSE.    Even more unfortunatel unfortunately is that dependencies on services are mapped internally to a require_any dependency group containing all instances of said service.    In short, you cannot require on require_any_satisfied or service dependencies to be satisfied before your service starts. 

 https://github.com/illumos/illumos-gate/blob/master/usr/src/cmd/svc/startd/graph.c#L1300

Back