#3595 closed defect (fixed)

Get rid of `fireEventually` use in EncryptAnUploadable._read_encrypted

Reported by: exarkun Owned by: GitHub <noreply@…>
Priority: normal Milestone: undecided
Component: unknown Version: n/a
Keywords: Cc:
Launchpad Bug:

Description

_read_encrypted uses fireEventually to interrupt Deferred chain unwinding. The implementation of read_encrypted incurs one additional Deferred in the chain per chunk. There are (total size / 50kB) chunks. If there are more than about 200 chunks then this overflows the Python stack limit, supposedly.

There are ways to avoid this overflow without fireEventually though. Removing fireEventually simplifies testing since it removes the implicit global reactor dependency. fireEventually also comes from Foolscap so removing it also removes one more point of dependency on Foolscap.

Change History (1)

comment:1 Changed at 2021-01-25T14:14:41Z by GitHub <noreply@…>

  • Owner set to GitHub <noreply@…>
  • Resolution set to fixed
  • Status changed from new to closed

In e5f0dcf/trunk:

Merge pull request #971 from LeastAuthority?/3594.read_encrypted-test

Directly test read_encrypted behavior and remove a fireEventually from its implementation

Fixes: ticket:3594
Fixes: ticket:3595

Note: See TracTickets for help on using tickets.