Reproducible Divide by Zero Segfault Crash Report #5

Open
opened 2024-08-01 20:45:17 +00:00 by Quaternions · 3 comments
Owner

reproducible bug:

  • load 6115144310.snfm
  • reset
  • do not touch mouse
  • inch backwards and fall off the spawn
    the bug occurs when decelerating and reaching the edge
reproducible bug: - load 6115144310.snfm - reset - do not touch mouse - inch backwards and fall off the spawn the bug occurs when decelerating and reaching the edge
Member

I suspect this bug may be the same as a similar one I just experienced

If you time a reset just as you walk off a platform, an input instruction can somehow happen with a delta time of 0, causing InputState::lerp_delta to divide by zero (tested by loading rbhop's saveda and resetting as I walk off the start plat). I've also had it happen once on a diff map just by walking against an edge normally.

I suspect this bug may be the same as a similar one I just experienced If you time a reset just as you walk off a platform, an input instruction can somehow happen with a delta time of 0, causing `InputState::lerp_delta` to divide by zero (tested by loading rbhop's saveda and resetting as I walk off the start plat). I've also had it happen once on a diff map just by walking against an edge normally.
Author
Owner

Resetting is treated as an input and does not flush the event queue in physics_worker.rs. Perhaps instead of returning Some(PhysicsInputInstruction::Idle) it should return None to flush the queue and change to immediate execution mode, as if the mouse had stopped moving for over 10ms

Resetting is treated as an input and does not flush the event queue in physics_worker.rs. Perhaps instead of returning Some(PhysicsInputInstruction::Idle) it should return None to flush the queue and change to immediate execution mode, as if the mouse had stopped moving for over 10ms
Member

Update: The issue is more than just a well timed reset. Loading bhop_pohb (see attached file) and just holding s will cause the lerp_delta divide by zero crash, no mouse movement or other key presses required
Update 2: More specific: Resetting, never generating a mouse event (don't move the mouse), and then causing a strafe tick (pressing any key while in the air), will also cause a crash, probably on any map
(tl;dr load map or reset -> never move mouse -> jump -> strafe in air -> divide by zero)

Update: The issue is more than just a well timed reset. Loading bhop_pohb (see attached file) and just holding s will cause the lerp_delta divide by zero crash, no mouse movement or other key presses required Update 2: More specific: Resetting, never generating a mouse event (don't move the mouse), and then causing a strafe tick (pressing any key while in the air), will also cause a crash, probably on any map (tl;dr load map or reset -> never move mouse -> jump -> strafe in air -> divide by zero)
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: StrafesNET/strafe-client#5
No description provided.