Skip to content

用 iperf3 并发测 SplitHTTP 会导致panic #3460

@vrnobody

Description

@vrnobody

完整性要求

  • 我保证阅读了文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
  • 我搜索了issues,没有发现已提出的类似问题。

版本

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 代码则没出现这种情况。
改动的代码:https://github.com/vrnobody/xraycore/commit/cecbc2b574e5c2b521497c983615e8dc2b384934

iperf3 日志

iperf3 -c 127.0.0.1 -p 6003 -P 2 -t 5
ip: 10.10.10.10
Connecting to host 127.0.0.1, port 6003
[  5] local 127.0.0.1 port 14315 connected to 127.0.0.1 port 6003
[  7] local 127.0.0.1 port 14317 connected to 127.0.0.1 port 6003
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.15   sec   111 MBytes   812 Mbits/sec
[  7]   0.00-1.15   sec  95.2 MBytes   695 Mbits/sec
[SUM]   0.00-1.15   sec   206 MBytes  1.51 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   1.15-2.09   sec  72.4 MBytes   644 Mbits/sec
[  7]   1.15-2.09   sec  49.9 MBytes   444 Mbits/sec
[SUM]   1.15-2.09   sec   122 MBytes  1.09 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   2.09-3.02   sec   115 MBytes  1.04 Gbits/sec
[  7]   2.09-3.02   sec  0.00 Bytes  0.00 bits/sec                     <---- 断流
[SUM]   2.09-3.02   sec   115 MBytes  1.04 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   3.02-4.06   sec   130 MBytes  1.05 Gbits/sec
[  7]   3.02-4.06   sec  0.00 Bytes  0.00 bits/sec
[SUM]   3.02-4.06   sec   130 MBytes  1.05 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   4.06-5.02   sec   112 MBytes   977 Mbits/sec
[  7]   4.06-5.02   sec  0.00 Bytes  0.00 bits/sec
[SUM]   4.06-5.02   sec   112 MBytes   977 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-5.02   sec   541 MBytes   903 Mbits/sec                  sender
[  5]   0.00-5.08   sec   520 MBytes   859 Mbits/sec                  receiver
[  7]   0.00-5.02   sec   145 MBytes   242 Mbits/sec                  sender
[  7]   0.00-5.08   sec   116 MBytes   192 Mbits/sec                  receiver
[SUM]   0.00-5.02   sec   686 MBytes  1.15 Gbits/sec                  sender
[SUM]   0.00-5.08   sec   636 MBytes  1.05 Gbits/sec                  receiver

iperf Done.
相应的服务器日志

2024/06/20 21:13:24 [Info] [4272183898] app/proxyman/inbound: connection ends > proxy/vless/inbound: connection ends > proxy/vless/inbound: failed to transfer request payload > transport/internet/splithttp: packet queue is too large
2024/06/20 21:13:24 [Info] transport/internet/splithttp: sessionid does not exist
2024/06/20 21:13:24 [Info] transport/internet/splithttp: sessionid does not exist
2024/06/20 21:13:24 [Info] transport/internet/splithttp: sessionid does not exist
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed

重现方式

本地运行 vless.splithttp.tls 服务器和客户端。用 iperf3 并发测 SplitHTTP。

客户端配置

Details

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "tag": "dkd",
      "listen": "127.0.0.1",
      "port": 6003,
      "protocol": "dokodemo-door",
      "settings": {
        "address": "127.0.0.1",
        "port": 5201,
        "network": "tcp"
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "127.0.0.1",
            "port": 6001,
            "users": [
              {
                "id": "bb4e2939-75dc-4384-aee4-50a2ef598a5a",
                "encryption": "none"
              }
            ]
          }
        ]
      },
      "tag": "agentout",
      "streamSettings": {
        "network": "splithttp",
        "security": "tls",
        "splithttpSettings": {
          "path": "/"
        },
        "tlsSettings": {
          "serverName": "mysite.com",
          "allowInsecure": true,
          "alpn": [
            "h2"
          ],
          "certificates": [
            {
              "certificateFile": "mysite.crt",
              "keyFile": "mysite.key"
            }
          ]
        }
      }
    }
  ]
}

服务端配置

Details

{
  "log": {
    "loglevel": "debug"
  },
  "inbounds": [
    {
      "tag": "spin",
      "listen": "127.0.0.1",
      "port": 6001,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "bb4e2939-75dc-4384-aee4-50a2ef598a5a"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "splithttp",
        "security": "tls",
        "splithttpSettings": {
          "path": "/"
        },
        "tlsSettings": {
          "serverName": "mysite.com",
          "allowInsecure": true,
          "alpn": [
            "h2"
          ],
          "certificates": [
            {
              "certificateFile": "mysite.crt",
              "keyFile": "mysite.key"
            }
          ]
        }
      }
    }
  ],
  "outbounds": [
    {
      "tag": "direct",
      "protocol": "freedom"
    }
  ]
}

客户端日志

Details

Xray 1.8.15 (Xray, Penetrates Everything.) 404af13 (go1.22.4 windows/amd64)
A unified platform for anti-censorship.
2024/06/20 21:12:39 [Info] infra/conf/serial: Reading config: stdin:
2024/06/20 21:12:39 [Warning] core: Xray 1.8.15 started
2024/06/20 21:13:22 127.0.0.1:14312 accepted tcp:127.0.0.1:5201 [dkd >> agentout]
2024/06/20 21:13:22 127.0.0.1:14315 accepted tcp:127.0.0.1:5201 [dkd >> agentout]
2024/06/20 21:13:22 127.0.0.1:14317 accepted tcp:127.0.0.1:5201 [dkd >> agentout]

服务端日志

Details

Xray 1.8.15 (Xray, Penetrates Everything.) 404af13 (go1.22.4 windows/amd64)
A unified platform for anti-censorship.
2024/06/20 21:12:49 [Info] infra/conf/serial: Reading config: stdin:
2024/06/20 21:12:49 [Debug] app/log: Logger started
2024/06/20 21:12:49 [Debug] app/proxyman/inbound: creating stream worker on 127.0.0.1:6001
2024/06/20 21:12:49 [Info] transport/internet/splithttp: listening TCP(for SH) on 127.0.0.1:6001
2024/06/20 21:12:49 [Warning] core: Xray 1.8.15 started
2024/06/20 21:13:22 [Info] [647115761] proxy/vless/inbound: firstLen = 0
2024/06/20 21:13:22 [Info] [647115761] proxy/vless/inbound: received request for tcp:127.0.0.1:5201
2024/06/20 21:13:22 [Info] [647115761] app/dispatcher: default route for tcp:127.0.0.1:5201
2024/06/20 21:13:22 [Info] [647115761] transport/internet/tcp: dialing TCP to tcp:127.0.0.1:5201
2024/06/20 21:13:22 127.0.0.1:14313 accepted tcp:127.0.0.1:5201 [spin >> direct]
2024/06/20 21:13:22 [Debug] transport/internet: dialing to tcp:127.0.0.1:5201
2024/06/20 21:13:22 [Info] [647115761] proxy/freedom: connection opened to tcp:127.0.0.1:5201, local endpoint 127.0.0.1:14314, remote endpoint 127.0.0.1:5201
2024/06/20 21:13:22 [Info] [647115761] proxy: CopyRawConn readv
2024/06/20 21:13:22 [Info] [2821068503] proxy/vless/inbound: firstLen = 0
2024/06/20 21:13:22 [Info] [2821068503] proxy/vless/inbound: received request for tcp:127.0.0.1:5201
2024/06/20 21:13:22 [Info] [2821068503] app/dispatcher: default route for tcp:127.0.0.1:5201
2024/06/20 21:13:22 [Info] [2821068503] transport/internet/tcp: dialing TCP to tcp:127.0.0.1:5201
2024/06/20 21:13:22 [Debug] transport/internet: dialing to tcp:127.0.0.1:5201
2024/06/20 21:13:22 127.0.0.1:14313 accepted tcp:127.0.0.1:5201 [spin >> direct]
2024/06/20 21:13:22 [Info] [2821068503] proxy/freedom: connection opened to tcp:127.0.0.1:5201, local endpoint 127.0.0.1:14316, remote endpoint 127.0.0.1:5201
2024/06/20 21:13:22 [Info] [2821068503] proxy: CopyRawConn readv
2024/06/20 21:13:22 [Info] [4272183898] proxy/vless/inbound: firstLen = 0
2024/06/20 21:13:22 [Info] [4272183898] proxy/vless/inbound: received request for tcp:127.0.0.1:5201
2024/06/20 21:13:22 [Info] [4272183898] app/dispatcher: default route for tcp:127.0.0.1:5201
2024/06/20 21:13:22 [Info] [4272183898] transport/internet/tcp: dialing TCP to tcp:127.0.0.1:5201
2024/06/20 21:13:22 127.0.0.1:14313 accepted tcp:127.0.0.1:5201 [spin >> direct]
2024/06/20 21:13:22 [Debug] transport/internet: dialing to tcp:127.0.0.1:5201
2024/06/20 21:13:22 [Info] [4272183898] proxy/freedom: connection opened to tcp:127.0.0.1:5201, local endpoint 127.0.0.1:14318, remote endpoint 127.0.0.1:5201
2024/06/20 21:13:22 [Info] [4272183898] proxy: CopyRawConn readv
2024/06/20 21:13:24 [Info] [4272183898] app/proxyman/inbound: connection ends > proxy/vless/inbound: connection ends > proxy/vless/inbound: failed to transfer request payload > transport/internet/splithttp: packet queue is too large
2024/06/20 21:13:24 [Info] transport/internet/splithttp: sessionid does not exist
2024/06/20 21:13:24 [Info] transport/internet/splithttp: sessionid does not exist
2024/06/20 21:13:24 [Info] transport/internet/splithttp: sessionid does not exist
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:24 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:27 http2: panic serving 127.0.0.1:14313: send on closed channel
goroutine 14362 [running]:
net/http.(*http2serverConn).runHandler.func1()
	net/http/h2_bundle.go:6185 +0x145
panic({0x1babd20?, 0x1f338a0?})
	runtime/panic.go:770 +0x132
github.com/xtls/xray-core/transport/internet/splithttp.(*UploadQueue).Push(...)
	github.com/xtls/xray-core/transport/internet/splithttp/upload_queue.go:39
github.com/xtls/xray-core/transport/internet/splithttp.(*requestHandler).ServeHTTP(0xc000341580, {0x1f48f10, 0xc000070a10}, 0xc00034f0e0)
	github.com/xtls/xray-core/transport/internet/splithttp/hub.go:92 +0x10d0
net/http.serverHandler.ServeHTTP({0x12de300?}, {0x1f48f10?, 0xc000070a10?}, 0xc000938000?)
	net/http/server.go:3137 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x1f4b180?, 0xc00035e000?}, 0xc00033c388?, {0xc00034e5a8?}}, {0x1f48f10, 0xc000070a10}, 0xc00034f0e0)
	net/http/server.go:3745 +0x231
net/http.(*http2serverConn).runHandler(0xf0a3bd?, 0x0?, 0x0?, 0xb9538e724ac0b7ea?)
	net/http/h2_bundle.go:6192 +0xbb
2024/06/20 21:13:27 [Info] [2821068503] app/proxyman/inbound: connection ends > proxy/vless/inbound: connection ends > proxy/vless/inbound: failed to transfer request payload > io: read/write on closed pipe
created by net/http.(*http2serverConn).scheduleHandler in goroutine 18
	net/http/h2_bundle.go:6127 +0x21d
2024/06/20 21:13:27 http2: panic serving 127.0.0.1:14313: send on closed channel
goroutine 14313 [running]:
net/http.(*http2serverConn).runHandler.func1()
	net/http/h2_bundle.go:6185 +0x145
panic({0x1babd20?, 0x1f338a0?})
	runtime/panic.go:770 +0x132
github.com/xtls/xray-core/transport/internet/splithttp.(*UploadQueue).Push(...)
	github.com/xtls/xray-core/transport/internet/splithttp/upload_queue.go:39
github.com/xtls/xray-core/transport/internet/splithttp.(*requestHandler).ServeHTTP(0xc000341580, {0x1f48f10, 0xc000088098}, 0xc000239680)
	github.com/xtls/xray-core/transport/internet/splithttp/hub.go:92 +0x10d0
net/http.serverHandler.ServeHTTP({0x12de300?}, {0x1f48f10?, 0xc000088098?}, 0xc000338198?)
	net/http/server.go:3137 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x1f4b180?, 0xc00035e000?}, 0xc00033c388?, {0xc00034e5a8?}}, {0x1f48f10, 0xc000088098}, 0xc000239680)
	net/http/server.go:3745 +0x231
net/http.(*http2serverConn).runHandler(0xf0a3bd?, 0x0?, 0x0?, 0x79567c94f6de264f?)
	net/http/h2_bundle.go:6192 +0xbb
created by net/http.(*http2serverConn).scheduleHandler in goroutine 18
	net/http/h2_bundle.go:6127 +0x21d
2024/06/20 21:13:27 http2: panic serving 127.0.0.1:14313: send on closed channel
goroutine 14289 [running]:
net/http.(*http2serverConn).runHandler.func1()
	net/http/h2_bundle.go:6185 +0x145
panic({0x1babd20?, 0x1f338a0?})
	runtime/panic.go:770 +0x132
github.com/xtls/xray-core/transport/internet/splithttp.(*UploadQueue).Push(...)
	github.com/xtls/xray-core/transport/internet/splithttp/upload_queue.go:39
github.com/xtls/xray-core/transport/internet/splithttp.(*requestHandler).ServeHTTP(0xc000341580, {0x1f48f10, 0xc0000709e0}, 0xc00034e900)
	github.com/xtls/xray-core/transport/internet/splithttp/hub.go:92 +0x10d0
net/http.serverHandler.ServeHTTP({0x12de300?}, {0x1f48f10?, 0xc0000709e0?}, 0xc000938000?)
	net/http/server.go:3137 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x1f4b180?, 0xc00035e000?}, 0xc00033c388?, {0xc00034e5a8?}}, {0x1f48f10, 0xc0000709e0}, 0xc00034e900)
	net/http/server.go:3745 +0x231
net/http.(*http2serverConn).runHandler(0xf0a3bd?, 0x0?, 0x0?, 0x5f92480c83a9e612?)
	net/http/h2_bundle.go:6192 +0xbb
created by net/http.(*http2serverConn).scheduleHandler in goroutine 18
	net/http/h2_bundle.go:6127 +0x21d
2024/06/20 21:13:27 http2: panic serving 127.0.0.1:14313: send on closed channel
goroutine 14365 [running]:
net/http.(*http2serverConn).runHandler.func1()
	net/http/h2_bundle.go:6185 +0x145
panic({0x1babd20?, 0x1f338a0?})
	runtime/panic.go:770 +0x132
github.com/xtls/xray-core/transport/internet/splithttp.(*UploadQueue).Push(...)
	github.com/xtls/xray-core/transport/internet/splithttp/upload_queue.go:39
github.com/xtls/xray-core/transport/internet/splithttp.(*requestHandler).ServeHTTP(0xc000341580, {0x1f48f10, 0xc000071738}, 0xc00034f320)
	github.com/xtls/xray-core/transport/internet/splithttp/hub.go:92 +0x10d0
net/http.serverHandler.ServeHTTP({0x12de300?}, {0x1f48f10?, 0xc000071738?}, 0xc000938000?)
	net/http/server.go:3137 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x1f4b180?, 0xc00035e000?}, 0xc00033c388?, {0xc00034e5a8?}}, {0x1f48f10, 0xc000071738}, 0xc00034f320)
	net/http/server.go:3745 +0x231
net/http.(*http2serverConn).runHandler(0xf0a3bd?, 0x0?, 0x0?, 0x8a13225019be90bc?)
	net/http/h2_bundle.go:6192 +0xbb
created by net/http.(*http2serverConn).scheduleHandler in goroutine 18
	net/http/h2_bundle.go:6127 +0x21d
2024/06/20 21:13:27 http2: panic serving 127.0.0.1:14313: send on closed channel
goroutine 14249 [running]:
net/http.(*http2serverConn).runHandler.func1()
	net/http/h2_bundle.go:6185 +0x145
panic({0x1babd20?, 0x1f338a0?})
	runtime/panic.go:770 +0x132
github.com/xtls/xray-core/transport/internet/splithttp.(*UploadQueue).Push(...)
	github.com/xtls/xray-core/transport/internet/splithttp/upload_queue.go:39
github.com/xtls/xray-core/transport/internet/splithttp.(*requestHandler).ServeHTTP(0xc000341580, {0x1f48f10, 0xc000282720}, 0xc00026eb40)
	github.com/xtls/xray-core/transport/internet/splithttp/hub.go:92 +0x10d0
net/http.serverHandler.ServeHTTP({0xc0008bfd50?}, {0x1f48f10?, 0xc000282720?}, 0xc000290380?)
	net/http/server.go:3137 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x1f4b180?, 0xc00035e000?}, 0xc00033c388?, {0xc00034e5a8?}}, {0x1f48f10, 0xc000282720}, 0xc00026eb40)
	net/http/server.go:3745 +0x231
net/http.(*http2serverConn).runHandler(0xf0a3bd?, 0x0?, 0x0?, 0xbbd5d43a578af6a9?)
	net/http/h2_bundle.go:6192 +0xbb
created by net/http.(*http2serverConn).scheduleHandler in goroutine 18
	net/http/h2_bundle.go:6127 +0x21d
2024/06/20 21:13:27 http2: panic serving 127.0.0.1:14313: send on closed channel
goroutine 14360 [running]:
net/http.(*http2serverConn).runHandler.func1()
	net/http/h2_bundle.go:6185 +0x145
panic({0x1babd20?, 0x1f338a0?})
	runtime/panic.go:770 +0x132
github.com/xtls/xray-core/transport/internet/splithttp.(*UploadQueue).Push(...)
	github.com/xtls/xray-core/transport/internet/splithttp/upload_queue.go:39
github.com/xtls/xray-core/transport/internet/splithttp.(*requestHandler).ServeHTTP(0xc000341580, {0x1f48f10, 0xc0000709f0}, 0xc00034ec60)
	github.com/xtls/xray-core/transport/internet/splithttp/hub.go:92 +0x10d0
net/http.serverHandler.ServeHTTP({0x12de300?}, {0x1f48f10?, 0xc0000709f0?}, 0xc000938000?)
	net/http/server.go:3137 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x1f4b180?, 0xc00035e000?}, 0xc00033c388?, {0xc00034e5a8?}}, {0x1f48f10, 0xc0000709f0}, 0xc00034ec60)
	net/http/server.go:3745 +0x231
net/http.(*http2serverConn).runHandler(0xf0a3bd?, 0x0?, 0x0?, 0x0?)
	net/http/h2_bundle.go:6192 +0xbb
created by net/http.(*http2serverConn).scheduleHandler in goroutine 18
	net/http/h2_bundle.go:6127 +0x21d
2024/06/20 21:13:27 http2: panic serving 127.0.0.1:14313: send on closed channel
goroutine 14361 [running]:
net/http.(*http2serverConn).runHandler.func1()
	net/http/h2_bundle.go:6185 +0x145
panic({0x1babd20?, 0x1f338a0?})
	runtime/panic.go:770 +0x132
github.com/xtls/xray-core/transport/internet/splithttp.(*UploadQueue).Push(...)
	github.com/xtls/xray-core/transport/internet/splithttp/upload_queue.go:39
github.com/xtls/xray-core/transport/internet/splithttp.(*requestHandler).ServeHTTP(0xc000341580, {0x1f48f10, 0xc000070a00}, 0xc00034eea0)
	github.com/xtls/xray-core/transport/internet/splithttp/hub.go:92 +0x10d0
net/http.serverHandler.ServeHTTP({0x12de300?}, {0x1f48f10?, 0xc000070a00?}, 0xc000938000?)
	net/http/server.go:3137 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x1f4b180?, 0xc00035e000?}, 0xc00033c388?, {0xc00034e5a8?}}, {0x1f48f10, 0xc000070a00}, 0xc00034eea0)
	net/http/server.go:3745 +0x231
net/http.(*http2serverConn).runHandler(0xf0a3bd?, 0x0?, 0x0?, 0x4a8b79ccd1e04cdf?)
	net/http/h2_bundle.go:6192 +0xbb
created by net/http.(*http2serverConn).scheduleHandler in goroutine 18
	net/http/h2_bundle.go:6127 +0x21d
2024/06/20 21:13:27 http2: panic serving 127.0.0.1:14313: send on closed channel
goroutine 14248 [running]:
net/http.(*http2serverConn).runHandler.func1()
	net/http/h2_bundle.go:6185 +0x145
panic({0x1babd20?, 0x1f338a0?})
	runtime/panic.go:770 +0x132
github.com/xtls/xray-core/transport/internet/splithttp.(*UploadQueue).Push(...)
	github.com/xtls/xray-core/transport/internet/splithttp/upload_queue.go:39
github.com/xtls/xray-core/transport/internet/splithttp.(*requestHandler).ServeHTTP(0xc000341580, {0x1f48f10, 0xc000282718}, 0xc00026e7e0)
	github.com/xtls/xray-core/transport/internet/splithttp/hub.go:92 +0x10d0
net/http.serverHandler.ServeHTTP({0xc00060fd50?}, {0x1f48f10?, 0xc000282718?}, 0xc0002903f0?)
	net/http/server.go:3137 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x1f4b180?, 0xc00035e000?}, 0xc00033c388?, {0xc00034e5a8?}}, {0x1f48f10, 0xc000282718}, 0xc00026e7e0)
	net/http/server.go:3745 +0x231
net/http.(*http2serverConn).runHandler(0xf0a3bd?, 0x0?, 0x0?, 0xaa3245c9754a98dd?)
	net/http/h2_bundle.go:6192 +0xbb
created by net/http.(*http2serverConn).scheduleHandler in goroutine 18
	net/http/h2_bundle.go:6127 +0x21d
2024/06/20 21:13:27 http2: panic serving 127.0.0.1:14313: send on closed channel
goroutine 14306 [running]:
net/http.(*http2serverConn).runHandler.func1()
	net/http/h2_bundle.go:6185 +0x145
panic({0x1babd20?, 0x1f338a0?})
	runtime/panic.go:770 +0x132
github.com/xtls/xray-core/transport/internet/splithttp.(*UploadQueue).Push(...)
	github.com/xtls/xray-core/transport/internet/splithttp/upload_queue.go:39
github.com/xtls/xray-core/transport/internet/splithttp.(*requestHandler).ServeHTTP(0xc000341580, {0x1f48f10, 0xc000088078}, 0xc000238480)
	github.com/xtls/xray-core/transport/internet/splithttp/hub.go:92 +0x10d0
net/http.serverHandler.ServeHTTP({0xc0037d7d50?}, {0x1f48f10?, 0xc000088078?}, 0xc0002861e0?)
	net/http/server.go:3137 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x1f4b180?, 0xc00035e000?}, 0xc00033c388?, {0xc00034e5a8?}}, {0x1f48f10, 0xc000088078}, 0xc000238480)
	net/http/server.go:3745 +0x231
net/http.(*http2serverConn).runHandler(0xf0a3bd?, 0x0?, 0x0?, 0x8af2b536c5156bc3?)
2024/06/20 21:13:27 [Info] transport/internet/splithttp: sessionid does not exist
	net/http/h2_bundle.go:6192 +0xbb
created by net/http.(*http2serverConn).scheduleHandler in goroutine 18
	net/http/h2_bundle.go:6127 +0x21d
2024/06/20 21:13:27 [Info] transport/internet/splithttp: failed to upload > transport/internet/splithttp: splithttp packet queue closed
2024/06/20 21:13:28 [Info] [647115761] app/proxyman/inbound: connection ends > proxy/vless/inbound: connection ends > context canceled

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions