launchpad-dev team mailing list archive
-
launchpad-dev team
-
Mailing list archive
-
Message #07580
Re: A draft microservice for gpg verification
On Mon, Jul 11, 2011 at 6:47 PM, Thomas Hervé
<thomas.herve@xxxxxxxxxxxxx> wrote:
> Le 11/07/2011 01:24, Robert Collins a écrit :
>> On Mon, Jul 11, 2011 at 8:58 AM, Thomas Hervé
>> <thomas.herve@xxxxxxxxxxxxx> wrote:
>>> Not arguing with those last points, I just wanted to point out that
>>> using Twisted with a Zope server is not that hard. There are 2 cases:
>>> * You're already using Twisted as WSGI container. In which case, you
>>> are already running Twisted, so it's "just" a matter of being careful
>>> when you're making from from threads. blockingCallFromThread is really
>>> useful for that.
>>
>> We have that turned off due to instability.
>
> I'd be interested to know the problems.
Gary may be able to fill you in, AIUI it was tried but not stable so untried.
>>> * You're using another container. In this case, you can use a dedicated
>>> thread for running Twisted. There are a couple of pitfalls (not install
>>> the signal handlers, thus not starting processes with Twisted), but
>>> otherwise it works fine. blockingCallFromThread still works as a bonus.
>>
>> The container we're using is zope itself. The security model is thread
>> based, twisted is not. This leads to a range of terrible side effects
>> - from silent security vulnerabilities to attribute access failing for
>> undiagnosable reasons.
>>
>> Your points about how one *in general* might integrate twisted are
>> reasonable, but *zope* specifically plus *twisted* are specifically
>> considerably harder to work well reliably together.
>
> It seems to be you're talking about integrating a threaded application
> with Twisted, and there is not much specific to Zope here. Indeed, you
> should make sure you only send stateless objects to the Twisted thread.
> It's a problem which can happen with Storm as well for example. Granted,
> it's a problem.
Well, individual requests in zope aren't threaded, but the framework
is deeply threaded, and state isn't trivial to isolate.
So I'm sure it can be done, but its not well understood and easy to do right! ;)
-Rob
Follow ups
References
-
A draft microservice for gpg verification
From: Robert Collins, 2011-06-27
-
Re: A draft microservice for gpg verification
From: Stuart Bishop, 2011-07-04
-
Re: A draft microservice for gpg verification
From: Gavin Panella, 2011-07-05
-
Re: A draft microservice for gpg verification
From: Stuart Bishop, 2011-07-05
-
Re: A draft microservice for gpg verification
From: Stuart Bishop, 2011-07-05
-
Re: A draft microservice for gpg verification
From: Robert Collins, 2011-07-05
-
Re: A draft microservice for gpg verification
From: Stuart Bishop, 2011-07-05
-
Re: A draft microservice for gpg verification
From: Robert Collins, 2011-07-05
-
Re: A draft microservice for gpg verification
From: Martin Pool, 2011-07-06
-
Re: A draft microservice for gpg verification
From: Jonathan Lange, 2011-07-10
-
Re: A draft microservice for gpg verification
From: Robert Collins, 2011-07-10
-
Re: A draft microservice for gpg verification
From: Thomas Hervé, 2011-07-10
-
Re: A draft microservice for gpg verification
From: Robert Collins, 2011-07-10
-
Re: A draft microservice for gpg verification
From: Thomas Hervé, 2011-07-11