Awesome Alistair! I didn't notice the remaining reference causes to prevent conn.close() propagation. I'll try your patch and crypto-review branch.
Small opinion from me, that's ok this has been public already but note that a client can leave the long-lived backend connections any time easily (e.g. using invalid etag, client disconnect). Therefore client can make a situation like:
(connections between client and proxy) << (connections between proxy and object-server)
Though it also can be mitigated via access restriction, it may require another countermeasure rather than that for a lot of concurrent (slow) client connection.
Awesome Alistair! I didn't notice the remaining reference causes to prevent conn.close() propagation. I'll try your patch and crypto-review branch.
Small opinion from me, that's ok this has been public already but note that a client can leave the long-lived backend connections any time easily (e.g. using invalid etag, client disconnect). Therefore client can make a situation like:
(connections between client and proxy) << (connections between proxy and object-server)
Though it also can be mitigated via access restriction, it may require another countermeasure rather than that for a lot of concurrent (slow) client connection.