The full nightly build was built successfully and testings look good as 
well.  I have posted the new incremental webrev under

http://cr.opensolaris.org/~stevep/6351623-2

The previous one has been moved under 6351623-1.  Please take a look at 
and if you can get back to me with any new comment
by cob Wed then that will great.

Thanks

Steve


Steve Peng wrote:
> David,
>
> Again responses inline.  I will be making some new changes and do the 
> build.   I will post a new incremental webrev once
> the build is completed and tested.
>
> Thanks
>
> Steve
>
>
>
> David Bustos wrote:
>   
>> Quoth Steve Peng on Tue, Jan 22, 2008 at 11:38:24AM -0700:
>>   
>>     
>>> Thanks for your comments.  Replies inline.  With regard to idempotency, 
>>> I think the protocol should be idempotent and handle accordingly.
>>>     
>>>       
>> Does that mean you'll change client.c:repository_switch() to use
>> changeid logic?
>>   
>>     
>
> Yep.  Working on it.
>
>   
>>   
>>     
>>> David Bustos wrote:
>>>     
>>>       
>>>> Quoth Steve Peng on Tue, Jan 15, 2008 at 08:16:16PM -0700:
>>>>       
>>>>         
>>>>> David Bustos wrote:
>>>>>         
>>>>>           
>> ...
>>   
>>     
>>>>>  >   1256: Why is it ok to fail if src doesn't match?  What should the
>>>>>  >     client do in that case?
>>>>>
>>>>> Good point.  I probably should assert it.
>>>>>         
>>>>>           
>>>> No, then a bug in svcadm could cause svc.configd to crash.  What
>>>> I wonder is if src is really necessary; shouldn't we always switch from
>>>> the current repository?  If so, why should we refuse if the client has
>>>> the wrong path?
>>>>       
>>>>         
>>> What bug can cause configd to crash?
>>>     
>>>       
>> If you make svc.configd assert() that strcmp(be->be_path, src) == 0,
>> then if svcadm had a bug where it gave the wrong path to
>> _scf_repository_switch(), then the condition would be false and
>> svc.configd would abort.
>>   
>>   
>>     
>>>                                       Shouldn't the path (be_path) 
>>> always match the existing be_db?  Is there any
>>> possibility that be_path can refer to a file path which is different 
>>> from what be_db points to?
>>>     
>>>       
>> I'm talking about line 1254, where you compare be->be_path to src, the
>> path the client sent.  The only guarantee that they will match is that
>> svcadm knows where svc.configd's repository is.  This seems like an
>> unnecessary restriction to me, and would make the system more fragile to
>> bugs or future changes.
>>   
>>     
>
> Ah!  Ok.  I will go ahead remove the restriction.
>
>   
>> Stepping back, I don't understand how the system could change so that it
>> would make sense to request svc.configd to move its repository from one
>> it's not using to somewhere else.  It seems to me that the client should
>> at most tell svc.configd where to move to, and svc.configd should always
>> switch from the repository it's currently using.  The only choice in
>> source that I see is when svc.configd is using multiple database files,
>> which is the case today because it uses persistent and nonpersistent
>> files.  But even then I would think that which to switch should be
>> selected abstractly (i.e., persistent vs. nonpersistent), rather than by
>> sending a path string.
>>
>>   
>>     
>>>>>  >   1273: If backend_switch_copy() failed, but sw_back is true, will we
>>>>>  >     try to sqlite_open(dst) anyway?
>>>>>
>>>>> Are you refering to line 1278?  Do you see any reason that we shouldn't
>>>>> sqlite_open?
>>>>>         
>>>>>           
>>>> No, I was just confused from the comment.  I do wonder, though, if we
>>>> really should switch to the file the client gave us, or if we should
>>>> switch back to the file which we opened when whe first started.
>>>>       
>>>>         
>>> In this case, I prefer switching to the original /etc/svc repository 
>>> instead of staying in the tmpfs location.
>>>     
>>>       
>> Right, I agree.  I'm just wondering if we should try to open whatever
>> path the client gave us, or if we should ignore dst and always open
>> REPOSITORY_DB.
>>
>>   
>>     
>>>>>  > lib/libscf/inc/libscf_priv.h
>>>>>  >   297-301: Why do we need a structure?  Can't _scf_repository_switch()
>>>>>  >     accept sw_src, sw_dst, and sw_back as separate parameters?
>>>>>
>>>>> Yes, I was thinking that too but decided to put them in a structure so
>>>>> in the future if we decide to add more parameters we can do so w/o chaning
>>>>> the interfaces prototype.
>>>>>         
>>>>>           
>>>> Do you know of other places in ON where we have done that?
>>>>       
>>>>         
>>> I think it should be easy to find the code where the interface/function 
>>> can be expanded easily by adding new fields in the
>>> structure passed to the function.  Say in the near future, if we decide 
>>> to pass more than three parameters we can do so by
>>> just adding new members to the structure w/o changing the interface 
>>> prototype.  This can be useful if the interface is called
>>> everywhere.
>>>     
>>>       
>> Right, this would be a good idea if we add fields which we don't need to
>> modify current consumers for.  Since this is a private function, I don't
>> think that there will be enough consumers to justify the extra
>> structure.  But I'll leave it up to you.
>>
>>
>> David
>>   
>>     
>
> _______________________________________________
> smf-discuss mailing list
> smf-discuss at opensolaris.org
>   


Reply via email to