Sebastien Roy wrote:
> Peter Memishian wrote:
>>  > I believe, however, that what Dan's describing is a scenario 
>> whereby the  > daemon is being started and some process attempts to 
>> use the door in the  > window between door_create() and 
>> daemonization.  Maybe this isn't during  > boot and someone typed 
>> "ifconfig plumb bge0" while the daemon was being  > restarted, and the 
>> daemon is in the process of servicing an upcall while  > daemonizing.  
>> Will this cause a problem?  Do we care?
>>
>> I'm unclear why the daemon was being restarted.  Did it crash?  If so, 
>> I'd
>> say that's an edge condition of an edge condition, and that it 
>> wouldn't be
>> a big deal if the ifconfig command failed because its door_call() thread
>> got cancelled.  (This whole scenario seems a bit contrived.)
> 
> Maybe it crashed, or maybe someone typed svcadm restart linkmgmnt.  It 
> is a bit contrived, indeed.
> 
>>  > > As I recall, the door file is actually packaged (rather than 
>> being created
>>  > > on demand) so that we avoid having to create it early at boot 
>> when the
>>  > > filesystem is read-only.
>>  >  > Yes, but the event Dan's concerned about isn't the door file 
>> creation,  > but the creation of the server procedure within the 
>> daemon (door_create()).
>>
>> I thought one of Dan's earlier suggestions for dealing with this was to
>> have the daemon explicitly create the door file.
> 
> I think so, but I'm a bit unclear on how this would solve the problem, 
> if we indeed have a problem to solve.
> 
Can we keep the door_create(), smf_init() in the child process, but 
synchronize the parent process and daemonized process, and let the parent 
process only exit when the child is ready to serve?

- Cathy



Reply via email to