[Twisted-Python] no factory.disconnect used the docs!?! (btw thx Itamar )

john nielsen jn at who.net
Fri Apr 23 13:50:58 EDT 2004


Once Itamar mentioned closing connections, then I realized I needed to add:

d.addCallback(lambda _: factory.disconnect())

The descriptors are now cleaned up.

An interesting point is that I cannot find any documentation that 
actually uses: factory.disconnect()

Did I miss it?

john
----- Original Message -----
From: twisted-python-request at twistedmatrix.com
Date: Thu, 22 Apr 2004 12:00:05 -0600
To: twisted-python at twistedmatrix.com
Subject: Twisted-Python Digest, Vol 1, Issue 1218

> Send Twisted-Python mailing list submissions to
> 	twisted-python at twistedmatrix.com
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> or, via email, send a message with subject or body 'help' to
> 	twisted-python-request at twistedmatrix.com
> 
> You can reach the person managing the list at
> 	twisted-python-owner at twistedmatrix.com
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Twisted-Python digest..."
> 
> 
> Today's Topics:
> 
>    1. Re: Transporting pb.Copyable classes? (exarkun at divmod.com)
>    2. Re: Transporting pb.Copyable classes? (Jasper Phillips)
>    3. Unwinding the Twisted Web (a progress report) (David Reid)
>    4. Re: Unwinding the Twisted Web (a progress report)
>       (Itamar Shtull-Trauring)
>    5. how to have a server talk to a server (john nielsen)
>    6. Re: how to have a server talk to a server (Eric Mangold)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Wed, 21 Apr 2004 18:53:37 GMT
> From: <exarkun at divmod.com>
> Subject: Re: [Twisted-Python] Transporting pb.Copyable classes?
> To: "Twisted discussion stuff" <twisted-python at twistedmatrix.com>
> Message-ID: <20040421185337.9235.1895087205.divmod.quotient.13 at ohm>
> Content-Type: text/plain
> 
> On Wed, 21 Apr 2004 09:57:47 -0700 (PDT), Jasper Phillips <jasper at peak.org> wrote:
> >
> > [snip]
> > 
> > 
> > All this seems to me like frantic contortion to avoid a bug in jelly.
> > Shouldn't it be able to translate passed class objects into the remote
> > version, provided they have been properly registered?  Is there some reason
> > why not that I am missing?
> 
>   Indeed.  While I would do this differently, jelly should certainly be able to handle your approach.  Let's get into specifics, shall we?  Here's some code:
> 
> >>> from twisted.spread import jelly
> >>> class Foo: pass
> ... 
> >>> f = Foo()
> >>> f.bar = Foo
> >>> jelly.jelly(f)
> ['__main__.Foo', ['dictionary', ['bar', ['class', '__main__.Foo']]]]
> 
>   So far, so good.
> 
> >>> from twisted.spread import pb     
> >>> class Foo(pb.Copyable):
> ...     pass
> ... 
> >>> f = Foo()
> >>> f.bar = Foo
> >>> jelly.jelly(f)
> ['__main__.Foo', ['dictionary', ['bar', ['class', '__main__.Foo']]]]
> 
>   Hmm, that works too.  I expected it not to, actually.  I suppose something you're doing with globalSecurity or setCopierForClassTree() may be mucking things up.
> 
> > 
> > I appreciate the code suggestions, but basicaly I just want to know whether
> > this is expected behavior, or whether I should post a demonstrative test
> > case and suggest a fix.
> 
>   Posting a demonstrative test case would be excellent :)  I suspect there is no bug in jelly, just a disagreement in expectations which can easily be resolved once there is a concrete example to talk about.
> 
>   Jp
> 
> 
> 
> ------------------------------
> 
> Message: 2
> Date: Wed, 21 Apr 2004 14:03:47 -0700 (PDT)
> From: Jasper Phillips <jasper at peak.org>
> Subject: Re: [Twisted-Python] Transporting pb.Copyable classes?
> To: Twisted discussion stuff <twisted-python at twistedmatrix.com>
> Message-ID: <Pine.LNX.4.53.0404211301540.9678 at a.shell.peak.org>
> Content-Type: TEXT/PLAIN; charset=US-ASCII
> 
> 
> On Wed, 21 Apr 2004 exarkun at divmod.com wrote:
> 
> > On Wed, 21 Apr 2004 09:57:47 -0700 (PDT), Jasper Phillips <jasper at peak.org> wrote:
> > > 
> > > All this seems to me like frantic contortion to avoid a bug in jelly.
> > > Shouldn't it be able to translate passed class objects into the remote
> > > version, provided they have been properly registered?  Is there some reason
> > > why not that I am missing?
> > 
> >   Indeed.  While I would do this differently, jelly should certainly be
> >   able to handle your approach.  Let's get into specifics, shall we?
> >   Here's some code:
> 
> I may end up doing it differently, but one thing at a time!  I'm in the
> midst of upgrading to new cred, and already have plenty of scope with which
> to hang myself. ;-)
> 
> I'm not particularily attached to the static class approach, it just
> happened to be what came to mind when prototyping.  I'm definitely curious
> now what you would do...  I've been programming in a vacuum for quite a
> while. :-(
> 
> 
> > >>> from twisted.spread import jelly
> > >>> class Foo: pass
> > ... 
> > >>> f = Foo()
> > >>> f.bar = Foo
> > >>> jelly.jelly(f)
> > ['__main__.Foo', ['dictionary', ['bar', ['class', '__main__.Foo']]]]
> > 
> >   So far, so good.
> > 
> > >>> from twisted.spread import pb     
> > >>> class Foo(pb.Copyable):
> > ...     pass
> > ... 
> > >>> f = Foo()
> > >>> f.bar = Foo
> > >>> jelly.jelly(f)
> > ['__main__.Foo', ['dictionary', ['bar', ['class', '__main__.Foo']]]]
> > 
> >   Hmm, that works too.  I expected it not to, actually.  I suppose
> >   something you're doing with globalSecurity or setCopierForClassTree()
> >   may be mucking things up.
> 
> This test case doesn't seem quite right...  Why doesn't it fail since Foo
> hasn't been registered?  Hmmm, looks like jelly()'s taster arg defaults to
> DummySecurityOptions()...
> 
> What about registering Foo, and then calling with jelly.globalSecurity?:
> ---- Code ----
> from twisted.spread import jelly, pb
> 
> class Foo( pb.Copyable ):  pass
> jelly.setUnjellyableForClass( Foo, Foo )
> #jelly.globalSecurity.allowInstancesOf( Foo )  # uncomment to fix
> 
> if __name__ == '__main__':
>     f = Foo()
>     f.bar = Foo
>     print jelly.jelly( f, taster=jelly.globalSecurity )
> 
> ---- End Code ----
> 
> This gives the Insecure Jelly exception I'm seeing, from jelly.py:482...
> However, comment out `f.bar = Foo` or uncomment allowInstancesOf() and it
> works.
> 
> Oh, and I'm using twisted 1.2 and python 2.3.3.
> 
> 
> [snip]
> >   Posting a demonstrative test case would be excellent :)  I suspect there
> >   is no bug in jelly, just a disagreement in expectations which can easily
> >   be resolved once there is a concrete example to talk about.
> 
> Is this a decent example?  As for a fix, it looks like the solution is there
> in SecurityOptions.allowsInstancesOf(), but that it's just not exposed.
> 
> -Jasper
> 
> 
> 
> 
> ------------------------------
> 
> Message: 3
> Date: Thu, 22 Apr 2004 03:56:47 -0700
> From: David Reid <dreid at dreid.org>
> Subject: [Twisted-Python] Unwinding the Twisted Web (a progress
> 	report)
> To: twisted-python <twisted-python at twistedmatrix.com>,	twisted-web
> 	<twisted-web at twistedmatrix.com>
> Message-ID: <1082631407.28634.20.camel at localhost>
> Content-Type: text/plain
> 
> I had been trying to straighten out the model for the split since my
> first post to twisted-web regarding it.  Now that radix, and exarkun
> have split twisted.news out of the core codebase as "lowdown". Since
> then I have begun work on my own source tree of twisted.web, the module
> has been split as "unwound" which is my proposed name as mentioned in
> the numerous naming threads (to be installed as tmlabs.unwound if
> desired.)  
> 
> So far I've done the following:
> 
>  * duplicate the source tree renaming the toplevel module and changing
> the imports accordingly.
> 
>  * run the tests (everything passes just as it does in twisted.web)
> 
>  * removed modules that were deprecated BY woven, and added a
> Deprecation Warning message to unwound.woven.__init__
> 
> If there are no complaints about this I'm asking someone (like radix) to
> help me complete the rest of the steps necessary to make this the
> official split so i can start working on changes and enhancements.  The
> things I can't do on my own, atleast not as part of twistedmatrix.com is
> setup the SVN repo and the project page.  
> 
> Also it appears if radix and exarkun did not solve (or atleast did not
> implmenet a solution for) the tap naming conflicts.  I.E. if lowdown or
> tmlabs.lowdown is going to use mktap news or mktap lowdown instead.
> 
> Other than that, Unwound is currently a useable tree of twisted.web At
> revision 10601.
> 
> (I'm open to changing the name to either tmlabs.web or some cute/catchy
> name other than 'unwound', but ultimately I think that is a policy
> decision that falls on the core twisted devs.)
> 
> --
> David Reid
> Claim to fame: "I actually wrote code that used twisted.web.webwidgets!"
> 
> 
> 
> 
> ------------------------------
> 
> Message: 4
> Date: Thu, 22 Apr 2004 11:21:46 -0400
> From: Itamar Shtull-Trauring <itamar at itamarst.org>
> Subject: Re: [Twisted-Python] Unwinding the Twisted Web (a progress
> 	report)
> To: Twisted discussion stuff <twisted-python at twistedmatrix.com>
> Cc: twisted-web at twistedmatrix.com
> Message-ID: <1082647306.27964.10.camel at sheriffpony>
> Content-Type: text/plain
> 
> On Thu, 2004-04-22 at 06:56, David Reid wrote:
> 
> > So far I've done the following:
> > 
> >  * duplicate the source tree renaming the toplevel module and changing
> > the imports accordingly.
> 
> >From what I've gathered from talking to Donovan and James this is *not*
> how the new twisted.web version is going to be developed. Donovan said
> he'd write out a roadmap for the mailing list after talking it over.
> 
> -- 
> Itamar Shtull-Trauring    http://itamarst.org
> Looking for a job -- http://itamarst.org/resume.html
> 
> 
> 
> 
> ------------------------------
> 
> Message: 5
> Date: Thu, 22 Apr 2004 10:46:30 -0500
> From: "john nielsen" <jn at who.net>
> Subject: [Twisted-Python] how to have a server talk to a server
> To: twisted-python at twistedmatrix.com
> Message-ID: <20040422154630.2989779004F at ws1-14.us4.outblaze.com>
> Content-Type: text/plain; charset="iso-8859-1"
> 
> I see some examples where you have  a client call pb.PBClientFactory to talk to a server which called pb.PBServerFactory.
> 
> What if you have 2 servers (both running pb.PBServerFactory) that accept clients and also want to talk to each other? Would the first server  also make a pb.PBClientFactory to talk to the second server (seems like you would have to be careful to not leak descriptors since the reactor would never close).
> 
> There's probably a standard way to do it, that I just missed.
> 
> Thanks for any help,
> 
> john
> 
> -- 
> ___________________________________________________________
> Sign-up for Ads Free at Mail.com
> http://promo.mail.com/adsfreejump.htm
> 
> 
> 
> 
> ------------------------------
> 
> Message: 6
> Date: Thu, 22 Apr 2004 11:38:55 -0600
> From: Eric Mangold <teratorn at world-net.net>
> Subject: [Twisted-Python] Re: how to have a server talk to a server
> To: Twisted discussion stuff <twisted-python at twistedmatrix.com>
> Message-ID: <opr6vcm5nfi4eeqj at mail.oaktech.net>
> Content-Type: text/plain; format=flowed; charset=iso-8859-1
> 
> On Thu, 22 Apr 2004 10:46:30 -0500, john nielsen <jn at who.net> wrote:
> 
> > I see some examples where you have  a client call pb.PBClientFactory to 
> > talk to a server which called pb.PBServerFactory.
> >
> > What if you have 2 servers (both running pb.PBServerFactory) that accept 
> > clients and also want to talk to each other? Would the first server  
> > also make a pb.PBClientFactory to talk to the second server
> 
> Yes.
> 
> > (seems like you would have to be careful to not leak descriptors since 
> > the reactor would never close).
> 
> Not sure what you mean by that.
> 
> 	-Eric
> 
> 
> 
> 
> 
> ------------------------------
> 
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> 
> 
> End of Twisted-Python Digest, Vol 1, Issue 1218
> ***********************************************
> 

-- 
___________________________________________________________
Sign-up for Ads Free at Mail.com
http://promo.mail.com/adsfreejump.htm





More information about the Twisted-Python mailing list