From: Brian Warner Date: Wed, 23 Apr 2008 21:52:34 +0000 (-0700) Subject: client: don't start the IntroducerClient until the Tub is ready, otherwise we will... X-Git-Tag: allmydata-tahoe-1.1.0~187 X-Git-Url: https://git.rkrishnan.org/frontends/class-simplejson.JSONEncoder.html?a=commitdiff_plain;h=55dfb697a448dbc7a46739dac52a2b1502f5f897;p=tahoe-lafs%2Ftahoe-lafs.git client: don't start the IntroducerClient until the Tub is ready, otherwise we will sometimes connect to the introducer (or other clients) before we've done Tub.setLocation, which loses some information on the introducer status page --- diff --git a/src/allmydata/client.py b/src/allmydata/client.py index e21ed6ff..87f77f48 100644 --- a/src/allmydata/client.py +++ b/src/allmydata/client.py @@ -101,9 +101,16 @@ class Client(node.Node, testutil.PollMixin): str(allmydata.__version__), str(self.OLDEST_SUPPORTED_VERSION)) self.introducer_client = ic - ic.setServiceParent(self) - # nodes that want to upload and download will need storage servers - ic.subscribe_to("storage") + # hold off on starting the IntroducerClient until our tub has been + # started, so we'll have a useful address on our RemoteReference, so + # that the introducer's status page will show us. + d = self.when_tub_ready() + def _start_introducer_client(res): + ic.setServiceParent(self) + # nodes that want to upload and download will need storage servers + ic.subscribe_to("storage") + d.addCallback(_start_introducer_client) + d.addErrback(log.err, facility="tahoe.init", level=log.BAD) def init_stats_provider(self): gatherer_furl = self.get_config('stats_gatherer.furl')