rapier icon indicating copy to clipboard operation
rapier copied to clipboard

Crash with `attempt to subtract with overflow` in `SAPRegion::update_after_subregion_removal()`

Open ppykalo opened this issue 1 year ago • 3 comments

I am using rapier 0.18.0 through bevy_rapier2d 0.24.0 and noticed occasional attempt to subtract with overflow in update_after_subregion_removal() on subtract from self.subproper_proxy_count. I cloned rapier repo, added some debug and turns out that axis.delete_deleted_proxies_and_endpoints_after_subregion_removal() call returns 1 but self.subproper_proxy_count equals 0 so subtraction causes panic in debug build.

As quick workaround I changed the subtraction to self.subproper_proxy_count = self.subproper_proxy_count.saturating_sub(num_deleted_proxies) but it's out of my rapier knowledge to fix this properly.

I'm attaching log containing debug outputs and stack backtrace + diff with changes I made. I know how to reproduce this problem (~50% chance) with current state of my project so it's possible to provide additional logs if needed. log.txt diff.txt

ppykalo avatar Feb 20 '24 13:02 ppykalo

I'm having this exact problem as well.

feroldi avatar Mar 22 '24 00:03 feroldi