Changes between and of Initial VersionVersion 2Ticket #6751


Ignore:
Timestamp:
09/18/13 04:33:55 (8 years ago)
Author:
Glyph
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #6751

    • Property Cc jknight added
  • Ticket #6751 – Description

    initial v2  
    11If an HTTP response has a small response-body, and a Twisted application does not immediately call `deliverBody` when said response is received, `Response` can leave its transport paused.
    22
    3 (More to follow.)
     3Among other things, this means that when `HTTP11ClientProtocol.quiescentCallback` is invoked, the 'quiescent' connection might be reading (if it happened to go through `_deliverBody_INITIAL`) or it might be paused (if it happened to go through `_deliverBody_DEFERRED_CLOSE`).
     4
     5This will lead to two negative effects:
     6
     7 1. `twisted.web.client.HTTPConnectionPool` will end up adding paused connections to its persistent connection cache, and
     8 2. if something manages to be holding on to the transport, it'll silently hang around forever, leaking an FD; if nothing is holding on to it, it'll be GC'd, closing its socket (without calling connectionLost) some time later.