[grpc-io] Re: gRPC python behaves differently from WINE Python vs Linux Python

2022-01-10 Thread John Forensics
I created a PR for this: https://github.com/grpc/grpc/pull/28506 Op donderdag 6 januari 2022 om 15:02:11 UTC+1 schreef John Forensics: > Still getting closed: > > On windows gRPC is handled using WSASend asynchronous IO. When reaching a > TCP congested situation WSASend should report *WSAEWOU

[grpc-io] Re: gRPC python behaves differently from WINE Python vs Linux Python

2022-01-06 Thread John Forensics
Still getting closed: On windows gRPC is handled using WSASend asynchronous IO. When reaching a TCP congested situation WSASend should report *WSAEWOULDBLOCK *however in WINE, the gRPC usage of WSASend always reports "0" grep "Ret ws2_32.WSASend" /tmp/stderr | sort | uniq -c 1 0d4:

[grpc-io] Re: gRPC python behaves differently from WINE Python vs Linux Python

2022-01-05 Thread John Forensics
Could one of the developers please elaborate on the case where: * The sender has been blocked (shortly) on a closed TCP Window leaving a large set of gRPC chunks waiting at the HTTP2 stream sender side * The receiver has not send a OUTBOUND WINDOW_UPDATE to signal its OK to send more data. My c

[grpc-io] Re: gRPC python behaves differently from WINE Python vs Linux Python

2022-01-05 Thread John Forensics
So the stream is stalled as the congestion window is closed. Just verified with tcpdump and tcptrace, and can confirm thats the problem. https://github.com/grpc/grpc/blob/2e3e3ccc3d5c40010a6ad6f824a5024176a7/src/core/ext/transport/chttp2/transport/writing.cc#L449 This explains why excessive

[grpc-io] Re: gRPC python behaves differently from WINE Python vs Linux Python

2022-01-05 Thread John Forensics
After sending some data (about 4 chunks of 16k of a single 1Mb gRPC message) the HTTP2-stream seems to be put on the "stalled" list. (Whatever that may be). World.Hello World.Hello World.Hello World.Hello World.Hello World.Hello World.Hello World.Hello World

[grpc-io] Re: gRPC python behaves differently from WINE Python vs Linux Python

2022-01-05 Thread John Forensics
I managed to extract some logging, the python side seems to send a too large frame. [id: 0x0e0792ca, L:/127.0.0.1:43718 - R:localhost/127.0.0.1:60630] Sent GOAWAY: lastStreamId '2147483647', errorCode '6', debugData 'Frame length: 2165320 exceeds maximum: 16384'. Forcing shutdown of the connect