We would like to request sponsorship by the Service Management Facility Community for a new project called the SMF Early Manifest Import Project or EMI Project.
Currently, the manifest-import service runs fairly late in the boot process. The reason for this is that the service curently depends on / being mounted read/write, and it requires access to /var/svc where the manifest and profile files are located. Because of this manifest-import is dependent on the filesystem/minimal service. Many services are already running, by the time that manifest-import runs. These services fall into two categories. The first is the obvious one of services that are needed to boot the machine. The second category is the set of services that do not declare a dependency on manifest-import for various reasons. These reasons include neglect or more probably lack of knowledge of the workings of SMF. Whatever the reason, services in this second category start as soon as their explicit dependencies are satisfied, so they may start before the manifest-import service has completed its work. Services that run before manifest-import may encounter problems if their manifest have been upgraded. The services will be running with the old property values that are stored in the repository rather than the new ones that are sitting in the yet to be imported upgraded manifest. Services that are added during an upgrade and that are needed during the early boot process present problems to service developers. They won't be started, because startd doesn't know about them. They have no representation in the repositoy until their manifests are imported by manifest-import. Problems also occur for early boot services that are deleted during an upgrade. The code for their methods has been removed, but there is still a representation for the service in the repository. Because of this, startd will try to start the service and not be able to find the start methods. The proposed SMF Early Manifest Import (EMI) project will solve these problems. startd will run EMI before any services are started, and EMI will import manifests and cleanup services that have been removed. EMI will allow a new location for manifest and profile files in /etc/svc. Since this is part of the root filesystem, it will be available in the earliest stages of the boot process. The project team consists of Sean Wilcox, Tony Nguyen and Tom Whitten.
