Xray-core
Xray-core copied to clipboard
XRay 经常崩溃
在配置未做改动的情况下,XRay 开始出现崩溃现象。
每次崩溃的日志都一样,只是 slice bounds out of range [1158:0] 中的数字有所不同。
Sep 05 11:30:42 xray[824]: panic: runtime error: slice bounds out of range [1158:0]
Sep 05 11:30:42 xray[824]: goroutine 1328675 [running]:
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf.(*Buffer).Read(...)
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf/buffer.go:253
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf.SplitBytes({0xc000ca8568, 0x1, 0x1}, {0xc000418486?, 0xc0005e7650?, 0xc001728148?})
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf/multi_buffer.go:105 +0x290
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf.(*BufferedReader).Read(0xc0005e7830, {0xc000418486?, 0xc0006e4ba0?, 0x0?})
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf/reader.go:68 +0x92
Sep 05 11:30:42 xray[824]: io.ReadAtLeast({0x555a5f4302a0, 0xc0005e7830}, {0xc000418000, 0x4e2, 0x2000}, 0x4e2)
Sep 05 11:30:42 xray[824]: io/io.go:332 +0x9a
Sep 05 11:30:42 xray[824]: io.ReadFull(...)
Sep 05 11:30:42 xray[824]: io/io.go:351
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf.(*Buffer).ReadFullFrom(0xc0006e4ba0?, {0x555a5f4302a0?, 0xc0005e7830?}, 0x2?)
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf/buffer.go:276 +0x85
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/proxy/vless/encoding.(*LengthPacketReader).ReadMultiBuffer(0xc0006e4b70)
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/proxy/vless/encoding/addons.go:180 +0x205
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf.copyInternal({0x555a5f4310a0, 0xc0006e4b70}, {0x555a5f42f5e0, 0xc001467820}, 0xc0007c7458)
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf/copy.go:81 +0x69
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf.Copy({0x555a5f4310a0, 0xc0006e4b70}, {0x555a5f42f5e0, 0xc001467820}, {0xc0004fcf20, 0x1, 0xbe?})
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/buf/copy.go:104 +0xa5
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/proxy/vless/inbound.(*Handler).Process.func4()
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/proxy/vless/inbound/inbound.go:514 +0x1f9
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/task.OnSuccess.func1()
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/task/task.go:12 +0x25
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/task.Run.func1(0xc001c791a0?)
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/task/task.go:28 +0x2e
Sep 05 11:30:42 xray[824]: created by github.com/xtls/xray-core/common/task.Run
Sep 05 11:30:42 xray[824]: github.com/xtls/xray-core/common/task/task.go:27 +0xde
Sep 05 11:30:43 systemd[1]: xray.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 05 11:30:43 systemd[1]: xray.service: Failed with result 'exit-code'.
Aug 12 15:05:36 xray[1043]: panic: runtime error: slice bounds out of range [2:0]
Aug 14 14:43:42 xray[6002]: panic: runtime error: slice bounds out of range [28:0]
Aug 17 00:20:41 xray[329]: panic: runtime error: slice bounds out of range [28:0]
Aug 21 10:31:19 xray[330]: panic: runtime error: slice bounds out of range [2:0]
Aug 23 13:07:48 xray[329]: panic: runtime error: slice bounds out of range [2:0]
Aug 24 13:47:00 xray[4918]: panic: runtime error: slice bounds out of range [2:0]
Aug 25 13:37:57 xray[330]: panic: runtime error: slice bounds out of range [2:0]
Aug 27 21:54:06 xray[329]: panic: runtime error: slice bounds out of range [28:0]
Aug 30 17:20:19 xray[329]: panic: runtime error: slice bounds out of range [2:0]
Sep 04 08:36:39 xray[324]: panic: runtime error: slice bounds out of range [28:0]
Sep 04 14:10:43 xray[330]: panic: runtime error: slice bounds out of range [2:0]
Sep 05 11:30:42 xray[824]: panic: runtime error: slice bounds out of range [1158:0]
减少 bufferSize
我此前并未设置 bufferSize, 现尝试将 bufferSize 设为 256.
这是由于服务端内存不足导致的吗? 我是否应该考虑为服务器设置 swap?
可能是 buffer 多线程的问题 贴一下配置看看?
配置如下
log:
loglevel: warning
api:
tag: api
services:
- HandlerService
- LoggerService
- StatsService
inbounds:
- tag: api
port: 8080
listen: 127.0.0.1
protocol: dokodemo-door
settings:
address: 127.0.0.1
stats: {}
policy:
system:
statsInboundUplink: true
statsInboundDownlink: true
statsOutboundUplink: true
statsOutboundDownlink: true
levels:
0:
statsUserUplink: true
statsUserDownlink: true
bufferSize: 128
inbounds:
- tag: tcp-xtls-vless-inbound
port: 443
protocol: vless
settings:
decryption: none
clients:
- id: <uuid>
flow: xtls-rprx-direct
fallbacks:
- dest: /run/nginx-h2.sock
alpn: h2
xver: 1
- dest: /run/nginx.sock
xver: 1
streamSettings:
security: xtls
xtlsSettings:
alpn:
- h2
- http/1.1
minVersion: '1.2'
maxVersion: '1.3'
certificates:
- certificateFile: fullchain.pem
keyFile: privkey.pem
ocspStapling: 3600
inbounds:
- tag: grpc-none-vless-inbound
listen: /run/xray/grpc.sock,666
protocol: vless
settings:
decryption: none
clients:
- id: <uuid>
streamSettings:
network: grpc
grpcSettings:
serviceName: <serviceName>
outbounds:
- tag: blocked-outbound
protocol: blackhole
outbounds:
- tag: pass-outbound
protocol: freedom
settings:
domainStrategy: UseIP
routing:
domainStrategy: AsIs
rules:
- outboundTag: api
inboundTag:
- api
type: field
- outboundTag: blocked-outbound
domains:
- 'geosite:cn'
type: field
- outboundTag: blocked-outbound
ip:
- 'geoip:private'
- 'geoip:cn'
type: field
https://github.com/XTLS/Xray-core/issues/1501#issuecomment-1375293435