Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ClientRPC native invocation is lacking SEH #798

Closed
blattersturm opened this issue Aug 14, 2021 · 3 comments · Fixed by #819
Closed

ClientRPC native invocation is lacking SEH #798

blattersturm opened this issue Aug 14, 2021 · 3 comments · Fixed by #819
Labels

Comments

@blattersturm
Copy link
Contributor

blattersturm commented Aug 14, 2021

https://forum.cfx.re/t/setvehicledoorslocked-rpc-causing-client-crashes-full-dump-included/4477043

try
{
(*n)(*executionCtx);
}
catch (std::exception& e)
{
trace("failure executing native rpc: %s\n", e.what());
return;
}

If we directly invoke the handler from ScriptEngine, we don't have a SEH wrapper for worst-case failures in game code.

@blattersturm blattersturm changed the title ClientRPC native invocation islacking SEH ClientRPC native invocation is lacking SEH Aug 14, 2021
@blattersturm
Copy link
Contributor Author

Another user hit this recently albeit with another native involved, and they seemed confused assuming it was blatant user error. 😕

[    118484] [    DumpServer]                 9684/   GTA5.exe!sub_1415F57F0 (0x23)
[    118484] [    DumpServer]                 9684/   GTA5.exe!getScriptGuidForEntity (0x22)
[    118484] [    DumpServer]                 9684/   gta-net-five.dll!<lambda>::operator() (0x30a) (<A HREF="https://github.com/citizenfx/fivem/blob/master/code/components/gta-net-five/src/ClientRPC.cpp#L496">ClientRPC.cpp:496</A>)
[    118484] [    DumpServer]                 9684/   gta-net-five.dll!<unknown>::operator() (0x12) (functional:995)
[    118484] [    DumpServer]                 9684/   gta-net-five.dll!<lambda>::operator() (0x574) (<A HREF="https://github.com/citizenfx/fivem/blob/master/code/components/gta-net-five/src/ClientRPC.cpp#L111">ClientRPC.cpp:111</A>)
[    118484] [    DumpServer]                 9684/   gta-net-five.dll!<unknown>::operator() (0x8) (<A HREF="https://github.com/citizenfx/fivem/blob/master/code/client/shared/EventCore.h#L272">EventCore.h:272</A>)
[    118484] [    DumpServer]                 9684/   gta-net-five.dll!std::invoke (0x8) (type_traits:1584)

@blattersturm
Copy link
Contributor Author

See analysis at https://forum.cfx.re/t/setvehicledoorslocked-rpc-causing-client-crashes-full-dump-included/4477043/7?u=deterministic_bubble - SEH oddly insufficient and it still has another odd failure mode.

@gottfriedleibniz
Copy link
Contributor

Believe this specific crash was fixed with 49c714d.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants