Ticket #1170: 1170-p1.diff

File 1170-p1.diff, 2.1 KB (added by warner, at 2010-08-31T19:55:52Z)

for review: drop received data after each block finishes, to avoid spans.py complexity bug

  • src/allmydata/immutable/downloader/share.py

    diff --git a/src/allmydata/immutable/downloader/share.py b/src/allmydata/immutable/downloader/share.py
    index f7ed4e8..413f907 100644
    a b class Share: 
    531531            for o in observers:
    532532                # goes to SegmentFetcher._block_request_activity
    533533                o.notify(state=COMPLETE, block=block)
     534            # now clear our received data, to dodge the #1170 spans.py
     535            # complexity bug
     536            self._received = DataSpans()
    534537        except (BadHashError, NotEnoughHashesError), e:
    535538            # rats, we have a corrupt block. Notify our clients that they
    536539            # need to look elsewhere, and advise the server. Unlike
  • src/allmydata/test/test_immutable.py

    diff --git a/src/allmydata/test/test_immutable.py b/src/allmydata/test/test_immutable.py
    index 813c5be..288332d 100644
    a b class Test(common.ShareManglingMixin, common.ShouldFailMixin, unittest.TestCase) 
    5252        def _after_download(unused=None):
    5353            after_download_reads = self._count_reads()
    5454            #print before_download_reads, after_download_reads
    55             self.failIf(after_download_reads-before_download_reads > 27,
     55            self.failIf(after_download_reads-before_download_reads > 36,
    5656                        (after_download_reads, before_download_reads))
    5757        d.addCallback(self._download_and_check_plaintext)
    5858        d.addCallback(_after_download)
    class Test(common.ShareManglingMixin, common.ShouldFailMixin, unittest.TestCase) 
    7070        def _after_download(unused=None):
    7171            after_download_reads = self._count_reads()
    7272            #print before_download_reads, after_download_reads
    73             self.failIf(after_download_reads-before_download_reads > 27, (after_download_reads, before_download_reads))
     73            self.failIf(after_download_reads-before_download_reads > 37, (after_download_reads, before_download_reads))
    7474        d.addCallback(self._download_and_check_plaintext)
    7575        d.addCallback(_after_download)
    7676        return d