part pool crashes
As of lately on metastruct we have crash analytics and I've noticed that a lot of crashes people had were related to the part_pool file. It might be worth investigating.
Example of such crashes:
Exception EXCEPTION_NONCONTINUABLE_EXCEPTION (0xC0000025) occurred
-- Lua Stack --
0. DrawModel - [C]:-1
1. RealDrawModel - lua/pac3/core/client/parts/model.lua:382
2. DrawModel - lua/pac3/core/client/parts/model.lua:433
3. OnDraw - lua/pac3/core/client/parts/model.lua:358
4. Draw - lua/pac3/core/client/base_part.lua:1129
5. Draw - lua/pac3/core/client/base_part.lua:1163
6. Draw - lua/pac3/core/client/base_part.lua:1163
7. Draw - lua/pac3/core/client/base_part.lua:1163
8. Draw - lua/pac3/core/client/base_part.lua:1163
9. Draw - lua/pac3/core/client/base_part.lua:1163
10. Draw - lua/pac3/core/client/base_part.lua:1163
11. Draw - lua/pac3/core/client/base_part.lua:1163
12. Draw - lua/pac3/core/client/base_part.lua:1163
13. Draw - lua/pac3/core/client/base_part.lua:1163
14. (null) - lua/pac3/core/client/part_pool.lua:137
15. pcall - [C]:-1
16. RenderOverride - lua/pac3/core/client/part_pool.lua:208
That's a normal stack trace of each parent part invoking its child part's draw function. Looks like a model part is to blame. Maybe someone's found an exploitative model that crashes players or maybe it's just an intermittent multicore rendering issue. We won't be able to find out without the outfit data.
Since the outfit is being rendered from 16. RenderOverride - lua/pac3/core/client/part_pool.lua:208 which is an RenderOverride, maybe the DrawModel is invoking it again, causing c stack overflow. @DBotThePony thoughts?
Wait nevermind, the method name just misled me. That function is called from render hooks, not from entity render overrides.
I guess one way to find the culprit is to see who has an outfit with a stack of parts about 10 levels high.
I have no way to find who the culprit is, these are only logs we get from people who join the server. Ill make sure to look around more the next time this happens.