Rongrong

Results 136 comments of Rongrong

> Ah, great. I wonder if there's an easy way to put a temp fix in aiohttp, which would hopefully get our CI tests stable. > Maybe we can just...

@beesaferoot Hmmm... I don't think so, because uvloop will eventually force abort the connection after 30s as I've described before. Also, in my usage, either with/without uvloop or with/without my...

Some statistics in my production environment. (In my use case only the response headers and/or the beginning 4KB of the response body is needed.) ![](https://user-images.githubusercontent.com/15956627/169674720-16298e46-0f61-4022-b30e-1bffc259584e.png) ![](https://user-images.githubusercontent.com/15956627/169674674-f866c554-2529-4248-80cd-7c2a217a3466.png)

I'd done some deep-dive and found that the bug is a TLS/SSL-relevant bug. Non-TLS connections can be closed even if `uvloop` is enabled. ```diff - await fetch('https://sgp-ping.vultr.com/vultr.com.1000MB.bin') + await fetch('http://sgp-ping.vultr.com/vultr.com.1000MB.bin')...

I also analyzed the web traffic with Wireshark. With `asyncio`, `RST` is immediately sent once the connection was closed; but with `uvloop`, closing the connection won't change anything as if...

Another deep-dive: ```diff async def fetch(url): async with aiohttp.ClientSession() as session: async with session.get(url) as response: logging.debug(response) logging.debug(response.content) + await asyncio.sleep(5) # at this point, only a little part of...

A deeper dive shows the direct cause of the bug. ```diff async def reproduce(wait): await fetch('https://sgp-ping.vultr.com/vultr.com.1000MB.bin') - await asyncio.sleep(wait) # now you will see that the file is still being...

Hi, @rojamit. I don't really so much familiar with aio servers. Could you please figure out some code to reproduce that? (I wonder, since it is a TLS/SSL issue, why...

Hopefully not. Historically speaking, some of the recent versions were released right after a long-time radio silence. If someone figures out a PR to fix this, it could make the...

Thanks for your explanation. I am still confused though. > this is probably because the remote peer didn't reply a proper TLS `shutdown`. If you replace the URL with `https://speed.cloudflare.com/__down?bytes=500000000`,...