> I very doubt if any sane code is organizing like this test: start delayed reading, cancel it and read again.
Hm, cancellation should work correctly no matter how "sane" or "insane" the user code is.
> The worse, neither previous not current sock_read() implementation doesn't prevent the concurrent reading which basically delivers data in an unpredictable order.
But we're not discussing using a socket concurrently -- asyncio explicitly does not support that for the sock_ api.
AFAICT this issue is about consequent cancel operation not working as expected in asyncio, no?