-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
用 iperf3 并发测 SplitHTTP 会导致panic #3460
Comments
can you try to lower |
Forget about my questions, you provided all steps. I tried it now and I cannot reproduce it on either 1.8.15 or #3462, that is on Ubuntu 22. possibly only an issue on Windows? Will take some time for me. |
I cannot reproduce this on Windows 10 either, neither with the 1.8.15 release for 64 bit, nor self-compiled main. |
测试了 v1.8.16 仍然存在相同的问题。不确定和 iperf 版本是否有关系。 iperf3.exe --version
iperf 3.17.1 (cJSON 1.7.15)
CYGWIN_NT-10.0-19045 DESKTOP-VD1SRRF 3.5.3-1.x86_64 2024-04-03 17:25 UTC x86_64
Optional features available: CPU affinity setting, authentication, support IPv4 don't fragment, POSIX threads 我的电脑很慢,试试增加 iperf3.exe -c 127.0.0.1 -p 6003 -t 15 -P 10
新的日志,没什么变化: iperf logs
server logs
client logs
|
Here are my findings. Because client upload data concurrently, for some reason, which I have no idea, some packets may be blocked permanently. So the upload queue will be filled up. Eventuality the server print out an error message "packet queue is too large". I come up with two solutions. Firt, disable concurrent-upload on client side. The second one is a little bit complicated. On the server side:
Here is a sample code vrnobody@cbe4ccd , which is targeting v1.8.15. On my computer, both solutions are about 10% slower. I personally prefer the first one. It is much simpler. |
i think it is reasonable to say, when the user sets
The problem I have with this is that it's only a workaround, there is a bug we don't understand.
BTW. What happens if you set |
After setting
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 70.73-87.47 sec 1.61 GBytes 824 Mbits/sec
[ 7] 70.73-87.47 sec 920 MBytes 461 Mbits/sec
[SUM] 70.73-87.47 sec 2.50 GBytes 1.29 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 87.47-96.02 sec 278 MBytes 273 Mbits/sec
[ 7] 87.47-96.02 sec 304 MBytes 298 Mbits/sec
[SUM] 87.47-96.02 sec 582 MBytes 571 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 96.02-99.31 sec 111 MBytes 283 Mbits/sec
[ 7] 96.02-99.31 sec 117 MBytes 298 Mbits/sec
[SUM] 96.02-99.31 sec 227 MBytes 581 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 99.31-103.95 sec 57.0 MBytes 103 Mbits/sec
[ 7] 99.31-103.95 sec 69.5 MBytes 125 Mbits/sec
[SUM] 99.31-103.95 sec 126 MBytes 228 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 104.00-105.55 sec 5.00 MBytes 27.1 Mbits/sec
[ 7] 104.00-105.55 sec 7.50 MBytes 40.6 Mbits/sec
[SUM] 104.00-105.55 sec 12.5 MBytes 67.7 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 105.55-112.30 sec 184 MBytes 228 Mbits/sec
[ 7] 105.55-112.30 sec 275 MBytes 342 Mbits/sec
[SUM] 105.55-112.30 sec 459 MBytes 570 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 112.30-118.06 sec 130 MBytes 189 Mbits/sec
[ 7] 112.30-118.06 sec 236 MBytes 343 Mbits/sec
[SUM] 112.30-118.06 sec 365 MBytes 532 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 118.06-125.12 sec 272 MBytes 323 Mbits/sec
[ 7] 118.06-125.12 sec 260 MBytes 310 Mbits/sec
[SUM] 118.06-125.12 sec 532 MBytes 633 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 125.12-131.00 sec 151 MBytes 215 Mbits/sec
[ 7] 125.12-131.00 sec 135 MBytes 193 Mbits/sec
[SUM] 125.12-131.00 sec 286 MBytes 408 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 131.00-135.49 sec 352 MBytes 658 Mbits/sec
[ 7] 131.00-135.49 sec 239 MBytes 447 Mbits/sec
[SUM] 131.00-135.49 sec 591 MBytes 1.10 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 5] 135.49-142.05 sec 474 MBytes 606 Mbits/sec
[ 7] 135.49-142.05 sec 552 MBytes 706 Mbits/sec
[SUM] 135.49-142.05 sec 1.00 GBytes 1.31 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - - |
In order to figure out what is happening, I add some logging code to v1.8.15. There is nothing interesting on the client side, so the following discussion is focusing on the server side. // handle one client request with seq=2
2024/06/26 13:54:26 [Error] transport/internet/splithttp: handling: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=2
// read req.Body into variable "payload"
2024/06/26 13:54:26 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=2
2024/06/26 13:54:26 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=2 len: 8k
// push Packet into uploadQueue.pushedPackets
2024/06/26 13:54:26 [Error] transport/internet/splithttp: push: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=2
2024/06/26 13:54:26 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=2
// client request handling finished
2024/06/26 13:54:26 [Error] transport/internet/splithttp: handled: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=2
// reader take one packet from uploadQueue.pushedPackets
2024/06/26 13:54:26 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 2 The full server log is too long, so I filter out the unimportant parts. cat log-serv.txt | grep "9f16ef94" | grep -e "reading" -e "pushed" -e "pop" -e "readed" -e "dump" -- > log-sim.txt Let's focus on seq=421 and seq=423 2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=420
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=420 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=420
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 420
// seq=421 begin to read req.Body
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=421
// other requests arrived and are pushed into uploadQueue.pushedPackets
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=413 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=413
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 413
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=412 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=412
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 412
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=416 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=416
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 416
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=424
// seq=423 is similar to seq=421
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=423
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=422
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=411 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=411
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 411
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=424 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=424
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 424
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=410 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=410
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 410
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=426
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=419 len: 752k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=419
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 419
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=425
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=418 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=418
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 418
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=417 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=417
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 417
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=427
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=428
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=429
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=430
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=425 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=425
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 425
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=408 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=408
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 408
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=430 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=430
// seq=423 read in time and is pushed into uploadQueue.pushedPackets
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=423 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=423
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=432
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=431
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=434
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=433
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 430
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 423
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=422 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=422
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=427 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 422
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=427
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 427
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=431 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=431
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 431
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=435
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=436
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=435 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=435
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 435
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=426 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=426
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=437
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=437 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=437
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=433 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=433
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 426
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 437
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 433
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=438
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=428 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=428
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 428
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=441
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=439
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=442
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=440
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=434 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=434
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 434
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=438 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=438
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 438
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=444
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=443
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=429 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=429
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 429
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=442 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=442
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 442
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=446
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=445
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=443 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=443
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 443
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=436 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=436
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=444 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=444
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 436
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 444
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=448
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=449
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=447
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=447 len: 16k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=447
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=440 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=440
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 447
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 440
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=451
2024/06/26 13:54:31 [Error] transport/internet/splithttp: reading body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=450
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=432 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=432
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pop: 9f16ef94-2abf-4643-a509-32d4ab082e6b with seq: 432
// packet queue is too large error
2024/06/26 13:54:31 [Error] transport/internet/splithttp: dump session: 9f16ef94-2abf-4643-a509-32d4ab082e6b seq: 421 heap size: 21 chan size: 0
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=451 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=451
// unfortunately, the uploadQueue is full before seq=421 is finished reading.
2024/06/26 13:54:31 [Error] transport/internet/splithttp: readed body: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=421 len: 984k
2024/06/26 13:54:31 [Error] transport/internet/splithttp: pushed: /?session=9f16ef94-2abf-4643-a509-32d4ab082e6b&seq=421 Full server log is here. |
@mmmray 有进展吗 |
I can look into it next week. @vrnobody Sorry for the lack of reply, I forgot to write, I didn't understand the logs or what pattern you were seeing in them, are you saying that with certain requests like 421, the request body Read is hanging? |
Yes. |
I cannot reproduce this issue, but I can reproduce an issue where iperf would hang entirely on start (not printing any Mbit/s) after a few successful runs. It seems that #3473 fixed that issue, however. Can you try it too? Maybe it fixes your issue as well. |
Looks like only me encounter this problem. And this problem probably do not appear in normal usage scenarios. I am closing this issue now. By the way, I tested e13f9f5 nothing changes. |
Ok. Thanks for the extensive testing and great bugreport! |
完整性要求
版本
Xray 1.8.15 404af13 (go1.22.4 windows/amd64)
描述
用 vless.splithttp.tls 执行
iperf3 -c 127.0.0.1 -p 6003 -P 2 -t 5
并发测速时会断流。禁用客户端的并发 upload 代码则没出现这种情况。改动的代码:vrnobody@cecbc2b
iperf3 日志
相应的服务器日志
重现方式
本地运行 vless.splithttp.tls 服务器和客户端。用 iperf3 并发测 SplitHTTP。
客户端配置
服务端配置
客户端日志
服务端日志
The text was updated successfully, but these errors were encountered: