[Enhanced server] fileserver_add: specific rules are nondeterministically ignored for some resources, which silently fall through to a later wildcard rule #342
IchigoWalker
started this conversation in
[BUG] FiveM for GTAV Enhanced
Replies: 2 comments 1 reply
|
Thanks, we are looking into this. |
1 reply
|
A fix for this bug has been implemented and is available in the August 4 patch. Please try again and let us know if the issue persists. Thanks for your help! |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
With per-resource fileserver_add rules (22 anchored rules like
"^gm-core$"declared before a final ".*" fallback), the Enhanced server assigns 20 of 22 resources to their correct fileserver, but exactly two resources ("bunker", "EventSquare") are silently assigned the wildcard's fileserver instead of their own — visible directly in /resources/list.json. The affected rules are byte-clean, correctly ordered, not duplicated; case sensitivity is ruled out (mixed-case rules like ^GuardOutpost$ match fine). Looks like rule iteration order is not the declaration order (unordered container?), so ".*" sometimes wins over a specific rule.Issue type
Server
Repro rate
Always
Server build version
b106 linux
OS
No response
CPU
No response
GPU
No response
RAM
No response
Storage type
None
Connection type
None
ISP and bandwidth
No response
DxDiag
No response
Network graph
No response
Platform
Linux
OS version / distribution
Ubuntu 22.04, Docker
CPU
AMD Ryzen 9 9950X
RAM
182G
Using txAdmin?
No
Hosting provider
Other GSP
Machine type
Dedicated
/perf endpoint output
No response
DDoS protection
CosmicGuard
ulimit -n value (Linux only)
1024
Docker Compose file (Docker only)
Available on requestSteps to Reproduce
fileserver_add "^<resource_name>$" "http://files.example.com/" (x22)
fileserver_add ".*" "http://files.example.com/"
Result in our setup: 20/22 resources get their own rule's URL (hash matches their rule exactly), while "bunker" and "CursedSquare" get the wildcard's URL. 100% reproducible across restarts and container recreations with the same rule set. I can share the full generated server.cfg and the exact resource list privately.
Expected Behavior
First-match-wins in declaration order: a resource whose anchored rule ("^bunker$") is declared before the wildcard should always be assigned that rule's fileserver.
Actual Behavior
Exactly two resources are assigned the wildcard rule's fileserver despite their specific rules being present, well-formed, and declared earlier. Which resources are affected looks arbitrary (one all-lowercase name, one mixed-case; declaration positions 5 and 11 of 22) but is stable for a given rule set.
Evidence
server.cfg excerpt (generated; full fileserver block, declaration order):
/resources/list.json assignment (sorted by prefix; every correct assignment's hash equals its rule's hash EXACTLY):
cat -A over the affected rules (no hidden characters — plain LF endings):
Additional Context
Resource names in this report are pseudonymized (case patterns and declaration order preserved exactly); the real generated server.cfg and resource list are available privately on request.
All reactions