<html><body>
<p><font size="2" face="sans-serif">Hey all, </font><br>
<br>
<font size="2" face="sans-serif">I went ahead and pushed up a WIP patch taking into account suggestions from Dims and Doug. I just saw the email from Adam before I put up the patch. </font><br>
<br>
<font size="2" face="sans-serif">Let me know if this is somewhat the direction that we want to take: <a href="https://review.openstack.org/#/c/34834/">https://review.openstack.org/#/c/34834/</a></font><br>
<br>
<font size="2" face="sans-serif">Thanks all for your time in responding to this. The feedback helps out a lot!</font><br>
<font size="2" face="sans-serif"><br>
<br>
Best Regards, <br>
<br>
Lance Bragstad <br>
Software Engineer - OpenStack  <br>
Cloud Solutions and OpenStack Development<br>
T/L 553-5409, External 507-253-5409 <br>
ldbragst@us.ibm.com, Bld 015-2/C118</font><br>
<br>
<img width="16" height="16" src="cid:1__=09BBF10BDF8AAECF8f9e8a93df938@us.ibm.com" border="0" alt="Inactive hide details for Adam Young ---06/27/2013 10:37:27 PM---On 06/27/2013 08:43 AM, Davanum Srinivas wrote: > Lance, Doug,"><font size="2" color="#424282" face="sans-serif">Adam Young ---06/27/2013 10:37:27 PM---On 06/27/2013 08:43 AM, Davanum Srinivas wrote: > Lance, Doug,</font><br>
<br>
<font size="1" color="#5F5F5F" face="sans-serif">From:      </font><font size="1" face="sans-serif">Adam Young <ayoung@redhat.com></font><br>
<font size="1" color="#5F5F5F" face="sans-serif">To:        </font><font size="1" face="sans-serif">openstack-dev@lists.openstack.org, </font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Date:      </font><font size="1" face="sans-serif">06/27/2013 10:37 PM</font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Subject:   </font><font size="1" face="sans-serif">Re: [openstack-dev] [Keystone] Unified logging and Eventlet conflict</font><br>
<hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br>
<br>
<br>
<tt><font size="2">On 06/27/2013 08:43 AM, Davanum Srinivas wrote:<br>
> Lance, Doug,<br>
> Looks like eventlet.patcher.is_monkey_patched(thread) is a reasonable<br>
> check to switch to to a thread-local implementation.<br>
<br>
Doesn't it make more sense to have anything Eventlet based explicitly <br>
activated?  For Keystone, we have isolated all monkeypatching to be done <br>
by the process that starts the Keystone server.  Adding an additional <br>
call in there to activate the thread local storage for greenthreads is <br>
reasonable from our perspective.<br>
<br>
><br>
> Doug,<br>
> did you mean threading.local with WeakValueDictionary?<br>
><br>
> -- dims<br>
><br>
> On Thu, Jun 27, 2013 at 8:15 AM, Doug Hellmann<br>
> <doug.hellmann@dreamhost.com> wrote:<br>
>> This isn't something the deployer controls, so I don't know if we want it to<br>
>> go into a config setting.<br>
>><br>
>> If we can't detect eventlet being used automatically, we could provide an<br>
>> initialization function in the locals module so projects could change the<br>
>> behavior when a process starts. The default mode would need to be eventlet,<br>
>> for now, but a thread-local implementation seems like an obvious<br>
>> alternative. And of course we would need the module to behave as it does now<br>
>> if the initialization is not explicitly called.<br>
>><br>
>> Doug<br>
>><br>
>> On Thu, Jun 27, 2013 at 8:03 AM, Davanum Srinivas <davanum@gmail.com> wrote:<br>
>>> Lance,<br>
>>><br>
>>> "is eventlet installed" a strong enough check? given that folks may<br>
>>> pick up a python install that has eventlet installed w/o realizing it?<br>
>>><br>
>>> Is there a way to check if the openstack process the code is running<br>
>>> in is using eventlet or not? or the other choice is a flag in logging<br>
>>> conf to switch to a non-eventlet implemenation?<br>
>>><br>
>>> -- dims<br>
>>><br>
>>> On Wed, Jun 26, 2013 at 8:17 PM, Lance D Bragstad <ldbragst@us.ibm.com><br>
>>> wrote:<br>
>>>> Hey all,<br>
>>>><br>
>>>> Recently there has been some push to get a unified logging<br>
>>>> implementation<br>
>>>> pulled from Oslo-incubator into Keystone (Blueprint:<br>
>>>><br>
>>>> </font></tt><tt><font size="2"><a href="https://blueprints.launchpad.net/keystone/+spec/unified-logging-in-keystone">https://blueprints.launchpad.net/keystone/+spec/unified-logging-in-keystone</a></font></tt><tt><font size="2">).<br>
>>>> Keystone has been actively working to isolate eventlet code within<br>
>>>> Keystone<br>
>>>> and bringing in the current implementation from Oslo-incubator would go<br>
>>>> against that work, as /oslo-incubator/openstack/common/log.py imports<br>
>>>> /oslo-incubator/openstack/common/local.py which has a dependency on<br>
>>>> eventlet<br>
>>>><br>
>>>> (</font></tt><tt><font size="2"><a href="https://github.com/openstack/oslo-incubator/blob/master/openstack/common/local.py#L22">https://github.com/openstack/oslo-incubator/blob/master/openstack/common/local.py#L22</a></font></tt><tt><font size="2">)<br>
>>>> and is used for storing references to contexts. I know there has been a<br>
>>>> couple of projects looking to not be dependent on eventlet and thought<br>
>>>> this<br>
>>>> might be a good topic for the mailing list, especially if these changes<br>
>>>> end<br>
>>>> up in Oslo-incubator.<br>
>>>><br>
>>>> After discussion with a couple of the Keystone members, one option is to<br>
>>>> tweak local.py to check if eventlet is even installed (similar to def<br>
>>>> _ensure_subprocess here:<br>
>>>><br>
>>>> </font></tt><tt><font size="2"><a href="https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/common/cms.py#L11">https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/common/cms.py#L11</a></font></tt><tt><font size="2">)<br>
>>>> and if it isn't then try implementing a different WeakLocal store not<br>
>>>> using<br>
>>>> corolocal.local. Any other ideas on how to approach this are more than<br>
>>>> welcome. Thanks!<br>
>>>><br>
>>>><br>
>>>><br>
>>>> Best Regards,<br>
>>>><br>
>>>> Lance Bragstad<br>
>>>> Software Engineer - OpenStack<br>
>>>> Cloud Solutions and OpenStack Development<br>
>>>> T/L 553-5409, External 507-253-5409<br>
>>>> ldbragst@us.ibm.com, Bld 015-2/C118<br>
>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> OpenStack-dev mailing list<br>
>>>> OpenStack-dev@lists.openstack.org<br>
>>>> </font></tt><tt><font size="2"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt><tt><font size="2"><br>
>>>><br>
>>><br>
>>><br>
>>> --<br>
>>> Davanum Srinivas :: </font></tt><tt><font size="2"><a href="http://davanum.wordpress.com">http://davanum.wordpress.com</a></font></tt><tt><font size="2"><br>
>>><br>
>>> _______________________________________________<br>
>>> OpenStack-dev mailing list<br>
>>> OpenStack-dev@lists.openstack.org<br>
>>> </font></tt><tt><font size="2"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt><tt><font size="2"><br>
>><br>
>><br>
>> _______________________________________________<br>
>> OpenStack-dev mailing list<br>
>> OpenStack-dev@lists.openstack.org<br>
>> </font></tt><tt><font size="2"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt><tt><font size="2"><br>
>><br>
><br>
><br>
<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
OpenStack-dev@lists.openstack.org<br>
</font></tt><tt><font size="2"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></font></tt><tt><font size="2"><br>
<br>
</font></tt><br>
</body></html>