shajianrui <[email protected]> added the comment:
Yes I reproduce this problem with a slight modification to your demo.
Using your origianl version I fail to reproduce, maybe 2*65536 bytes size is
too small.
I just change the size of data (in test_cgi_client.py ) to 8*65536, 16*65536
and 32*65536, and the result is shown on the image I attach.
>From the image you can see
- From 1 to 7 the length received doesn't change: always
195540 bytes.And the process of sending are really slow.
- At 8th test the server receive complete data. And the
sending is finished in a flash.(Maybe the socket suddenly
enlarge the buffer?)
- From 9 to 10 seems the "buffer" become smaller and smaller.
However, in my demo(Post in my last message), the data can be up to 65536*1024
bytes and 【seldom】 produce this problem.
I use "seldom" because I now confirm: If too many (more than 10) testclient.py
are executed at the same time, the testserver.py will produce the problem too.
Like this:
testserver.py output:
Connection closed.
67108864
0
Connection closed.
67108864
0
Connection closed.
67108864
0
Connection closed.
195640 # From here the problem show up.
42440740
2035240
9327940
13074300
35004
0
Connection closed.
67108864
0
Connection closed.
Seems this is a normal behavior of rfile.read() that it may not return as many
bytes as we tell it to read.
Now I have a problem: Why the bytes returned from "rfile.read()" is so few when
the rfile is in CGIHTTPRequestHandler?
----------
Added file: https://bugs.python.org/file48428/image.PNG
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue37301>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com