HACK Zooko-Ofsimplegeos-MacBook-Pro:~/playground/tahoe-lafs/pristine$ darcs whatsnew -u hunk ./src/allmydata/immutable/downloader/finder.py 145 self.overdue_timers[req] = reactor.callLater(self.OVERDUE_TIMEOUT, self.overdue, req) d = rref.callRemote("get_buckets", self._storage_index) - d.addBoth(incidentally, self._request_retired, req) d.addCallbacks(self._got_response, self._got_error, callbackArgs=(rref.version, peerid, req, d_ev, time_sent, lp), hunk ./src/allmydata/immutable/downloader/finder.py 186 s = self._create_share(shnum, bucket, server_version, peerid, dyhb_rtt) shares.append(s) - self._deliver_shares(shares) + self._deliver_shares(shares, req) def _create_share(self, shnum, bucket, server_version, peerid, dyhb_rtt): if shnum in self._commonshares: hunk ./src/allmydata/immutable/downloader/finder.py 216 self._node_logparent) return s - def _deliver_shares(self, shares): + def _deliver_shares(self, shares, req): # they will call hungry() again if they want more self._hungry = False shares_s = ",".join([str(sh) for sh in shares]) hunk ./src/allmydata/immutable/downloader/finder.py 222 self.log(format="delivering shares: %s" % shares_s, level=log.NOISY, umid="2n1qQw") - eventually(self.share_consumer.got_shares, shares) + def _then_do_this(): + self._request_retired(req) + self.share_consumer.got_shares(shares) + eventually(_then_do_this) def _got_error(self, f, peerid, req, d_ev, lp): hunk ./src/allmydata/immutable/downloader/finder.py 228 + self._request_retired(req) d_ev.finished("error", now()) self.log(format="got error from [%(peerid)s]", peerid=idlib.shortnodeid_b2a(peerid), failure=f,