3x-ui/internal/xray
PathGao ad5f2a28cb
fix(xray): synchronize lifecycle state (#6138)
* fix(xray): synchronize lifecycle snapshots

Protect process replacement and result caching with a lifecycle state object, so read paths keep one process snapshot while restarts swap state safely. Bound version probing to prevent a stalled binary from holding the restart lock.

* test(xray): cover concurrent lifecycle reads

Exercise status, result, and traffic reads while the managed process is replaced, so the race detector guards the lifecycle snapshot boundary.

* fix(xray): guard process config snapshots

Synchronize hot-applied config snapshots, keep Telegram reads on one lifecycle snapshot, and strengthen lifecycle timeout and concurrency regression coverage.

---------

Co-authored-by: PathGao <gaoyanbo@gaoyanbodeMacBook-Air.local>
2026-07-29 21:00:29 +02:00
..
api.go fix(xray): stop the runtime user API from crashing xray-core 2026-07-28 13:52:10 +02:00
api_e2e_test.go feat(online): use xray online-stats API for onlines and access-log-free IP limit 2026-06-11 19:42:03 +02:00
api_shadowsocks_test.go fix(xray): stop the runtime user API from crashing xray-core 2026-07-28 13:52:10 +02:00
api_test.go Repo-wide self-correcting audit: 54 verified bug fixes (#5970) 2026-07-17 00:33:06 +02:00
api_traffic_test.go fix(xray): stop the runtime user API from crashing xray-core 2026-07-28 13:52:10 +02:00
api_users_e2e_test.go fix(xray): stop the runtime user API from crashing xray-core 2026-07-28 13:52:10 +02:00
api_wireguard_test.go feat(wireguard): multi-client support 2026-06-28 00:44:38 +02:00
client_traffic.go perf(scale): speed up traffic, auto-renew, and node bulk ops at 50k-100k clients 2026-06-20 10:35:46 +02:00
config.go feat(xray): update xray-core to v26.7.11 and adapt panel 2026-07-12 00:30:47 +02:00
config_test.go
hot_diff.go Bug-label issue sweep: 16 fixes (#6083) 2026-07-23 15:34:42 +02:00
hot_diff_test.go Bug-label issue sweep: 16 fixes (#6083) 2026-07-23 15:34:42 +02:00
inbound.go
inbound_test.go
log_writer.go fix(xray): guard log-writer race and bound handler gRPC deadlines (#5442) 2026-06-20 18:10:18 +02:00
log_writer_race_test.go Use efficient APIs and simplify loops 2026-06-23 14:12:28 +02:00
mutation_audit_test.go refactor(frontend): move form-item hints from extra to tooltip 2026-06-17 17:24:16 +02:00
online_test.go feat(online): use xray online-stats API for onlines and access-log-free IP limit 2026-06-11 19:42:03 +02:00
outbound_validation_test.go feat(xray): update xray-core to v26.7.11 and adapt panel 2026-07-12 00:30:47 +02:00
process.go fix(xray): synchronize lifecycle state (#6138) 2026-07-29 21:00:29 +02:00
process_other.go
process_race_test.go Repo-wide self-correcting audit: 54 verified bug fixes (#5970) 2026-07-17 00:33:06 +02:00
process_test.go style: adopt golangci-lint v2 and resolve all findings 2026-06-27 15:42:22 +02:00
process_version_test.go fix(xray): synchronize lifecycle state (#6138) 2026-07-29 21:00:29 +02:00
process_windows.go style: adopt golangci-lint v2 and resolve all findings 2026-06-27 15:42:22 +02:00
traffic.go