← Back to team overview

launchpad-dev team mailing list archive

Re: A draft microservice for gpg verification

 

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.

>>  * 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.

-- 
Thomas




Follow ups

References