pac3 icon indicating copy to clipboard operation
pac3 copied to clipboard

part pool crashes

Open Earu opened this issue 5 years ago • 5 comments

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

Earu avatar May 06 '20 16:05 Earu

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.

thegrb93 avatar May 06 '20 17:05 thegrb93

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?

thegrb93 avatar May 06 '20 20:05 thegrb93

Wait nevermind, the method name just misled me. That function is called from render hooks, not from entity render overrides.

thegrb93 avatar May 06 '20 20:05 thegrb93

I guess one way to find the culprit is to see who has an outfit with a stack of parts about 10 levels high.

thegrb93 avatar May 06 '20 20:05 thegrb93

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.

Earu avatar May 07 '20 12:05 Earu