Repository navigation
[Bug] CoreCLR / .NET 10: API.EmitServerLatent Causes Infinite NetThread Send Queue Flood & Deadlock on Consecutive Calls #607
MosIbOad
started this conversation in
[BUG] FiveM for GTAV Enhanced
Replies: 2 comments
|
Hi, thanks for the report. We will provide a improvement for large payloads in the next patch. |
0 replies
|
Hello, |
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
When using
API.EmitServerLatentfrom a C# (.NET 10 / CoreCLR) client resource to transfer a payload exceeding ~1 MB (e.g., 1.5 MB), the initial transfer completes successfully. However, consecutive calls toEmitServerLatentcause an unrecoverable deadlock in NetThread, resulting in continuousClient::NetThread: Many packets in the send queuespam in the console. The payload never reaches the server, and outgoing latent traffic becomes permanently blocked until client reconnection.Issue type
Client
Repro rate
Always
Server build version
FXServer-early-access b170 win32
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
None
OS version / distribution
No response
CPU
No response
RAM
No response
Using txAdmin?
None
Hosting provider
None
Machine type
None
/perf endpoint output
No response
DDoS protection
No response
ulimit -n value (Linux only)
No response
Docker Compose file (Docker only)
No response
Steps to Reproduce
API.EmitServerLatent:sendbigdataserver• The data arrives at the server, though
Client::NetThread: Many packets in the send queuewarnings appear temporarily during transfer.• Once the initial large payload finishes transmitting, execute the
sendbigdataservercommand in the console a second time.Expected Behavior
The second latent event transmission should initialize normally, send all packets through the latent channel, and arrive at the server without packet drop.
Once an
EmitServerLatenttransmission completes, the client-side NetThread queue and latent channel state machine should flush and reset, allowing subsequent transfers without flooding the send buffer.Actual Behavior
The second payload never reaches the server.
The client console enters an unrecoverable infinite loop, flooding the log continuously with:
Evidence
https://www.youtube.com/watch?v=KbwGhbgowh4
Additional Context
No response
All reactions