[MERGE/RFC] Add transport jail to bzr smart server; add ignore_fallbacks option to BzrDir.open_branch

Andrew Bennetts andrew.bennetts at canonical.com
Thu Mar 26 09:13:41 GMT 2009


Robert Collins wrote:
> On Thu, 2009-03-26 at 09:17 +0100, Vincent Ladeuil wrote:
> > 
> > What I still don't get is why you use a per thread data instead
> > of just a global one ? You have a use case where different jails
> > are needed inside the same process ? Outside the test suite ?
> 
> The server is multithreaded. Each thread gets jailed separately.

To elaborate on this point: when you do “bzr serve” to create a TCP bzr
server, bzr instantiates a bzrlib.smart.server.SmartTCPServer.  That class
creates a thread for every accepted TCP socket.  So it's possible for bzrlib
to be serving multiple requests concurrently, but they will each be in their
own thread.

For “bzr serve --inet”, which handles bzr+ssh (and TCP if launched from
inetd) then there's only one thread, but we do want plain “bzr serve” to
work just as well.

-Andrew.




More information about the bazaar mailing list