Clay Baenziger wrote:
> Hi Ethan,
> Thank you for finding apache does indeed create the directory, I
> have reverted the SMF method.
thanks.
>
> The issues for the service/instance, is you're using a handle to a
> non-existent service under that method. Though I thought I checked
> things carefully, I see that there is a bug:
>
>>>> import osol_install.libaiscf as a
>>>> b=a.AIservice(a.AISCF(),"osol-1002-8347-ai-sparc")
>>>> b.keys()
> ['boot_file', 'service_name', 'status', 'image_path', 'txt_record']
>>>> b.instance.services
> {'osol-1002-8347-ai-sparc': <osol_install.libaiscf.AIservice object at
> 0x80e34b4>}
>>>> b.instance.del_service("osol-1002-8347-ai-sparc")
>>>> a.AISCF().services
> {}
>>>> b.instance.services
> Segmentation Fault (core dumped)
>
> I think this is due to the SCF handle still holding a pointer to the
> (now) non-existent property group; so one needs an SCF data structure
> without that incorrect data. I've filed 12047 - libaiscf_pymod: should
> check validity of SCF PG handle in service transactions.
>
> So, one needs to create a new AISCF object. This is unfortunate and for
> the most part an AIservice object will raise an exception that the
> service is not valid if the property group is deleted but this data was
> not checked for.
Okay, thanks for the explanation and filing the bug.
thanks,
-ethan
>
> Thank you,
> Clay
>
> On Fri, 16 Oct 2009, Ethan Quach wrote:
>
>> Clay,
>>
>>
>> svc-install-server
>> ------------------
>> The installadm code shouldn't have to check for, and make this dir.
>> This is simply configuration we've set for our instance of Apache.
>> Apache creates its configured LockFile and PidFile dirs accordingly
>> on the fly.
>>
>>
>> one more comment below ...
>>
>>
>> Clay Baenziger wrote:
>>> Hi Ethan,
>>> Good ideas. New webrev at
>>> http://cr.opensolaris.org/~clayb/11214_12016/webrev1/ as I need to
>>> potentially create the /var/run directory path so the SMF method is here
>>> updated.
>>> Thank you,
>>> Clay
>>>
>>>> ai-httpd.conf
>>>> -------------
>>>> 36,37 - Shouldn't these paths be somewhere in /var/run instead of
>>>> somewhere on the disk?
>>>
>>> I had thought more about keeping AI bits together, but /var/run is
>>> the canonical place for such stuff, so it should be there. Now the
>>> next question is, there's /var/run/apache2/2.2/httpd.pid, so we
>>> should use that directory. Thank you for pointing out a tmp.
>>> directory is a much better place for such transient data (not to
>>> mention where the ARC says to put such stuffs).
>>>
>>>> delete_service.py
>>>> -----------------
>>>> 809-812, Should we execute lines 814-819 first before we transition
>>>> to MAINTENANCE?
>>>
>>> I don't see it one way or the other. The code would need to be
>>> slightly different to do it the way you suggest -- not bad, just
>>> different.
>>>
>>> As per Jack's request in the code walk-through I try not to
>>> instantiate extra AISCF() objects and consistently access the list of
>>> services (here service.instance (the AISCF() object its wedded to),
>>> then the services property of that -- so service.instance.services).
>>> It simply saves creating another AISCF() object.
>>>
>>> There's no functional difference I'm aware of.
>>
>> I guess its just a nit perhaps, but it seems more logical for us to
>> make sure we successfully deleted the service configuration before
>> transitioning to maintenance. All I'm suggesting is the below.
>> (I'm not seeing how this involves creating another AISCF() object)
>>
>>
>> # remove the service
>> try:
>> service.instance.del_service(service.serviceName)
>> # if the service can not be found a KeyError will be raised
>> except KeyError:
>> pass
>>
>> # if we just deleted the instance's last service, transition the
>> # SMF instance to maintenance
>> if len(service.instance.services) == 0:
>> service.instance.state = "MAINTENANCE"
>>
>>
>>
>> thanks,
>> -ethan
>>
>>
>>
>>>
>>>> thanks,
>>>> -ethan
>>>>
>>>>
>>>> Clay Baenziger wrote:
>>>>> Hi all,
>>>>> Could Ethan (or if someone else wants to instead) code review
>>>>> the changes for:
>>>>> 11214 - AI image web server won't run if apache22 is already enabled
>>>>> 12016 - Need to use SIGTERM and check for last service in
>>>>> delete_service
>>>>>
>>>>> The -- seven line -- webrev is at:
>>>>> http://cr.opensolaris.org/~clayb/11214_12016/
>>>>>
>>>>> The bugs are at:
>>>>> http://defect.opensolaris.org/bz/show_bug.cgi?id=11214
>>>>> http://defect.opensolaris.org/bz/show_bug.cgi?id=12016
>>>>> Thank you,
>>>>> Clay
>>>>
>>