fix(draw): stop CEnvBeam #4530 watchdog crash-loop (force BEAM_POINTS)#437
Open
dux1993 wants to merge 1 commit into
Open
fix(draw): stop CEnvBeam #4530 watchdog crash-loop (force BEAM_POINTS)#437dux1993 wants to merge 1 commit into
dux1993 wants to merge 1 commit into
Conversation
BeamLine spawned env_beam entities without setting BeamType, so the engine treated them as entity-anchored and walked m_pSceneNode->m_pParent->m_pOwner to resolve a scene owner that never exists for a code-spawned beam. On Linux this hangs the main thread in an infinite loop (Valve csgo-osx-linux#4530), tripping the engine watchdog and crash-looping the server on every map rotation. Setting BeamType = BEAM_POINTS draws the beam origin->EndPos in world space and skips scene-owner resolution entirely. This fixes the zone, trail, and marker lasers that are all built on BeamLine.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
cs2-jailbreakprod is crash-looping. AcceleratorCS2 dumps show aSIGSEGV/Watchdog timeout exceededwith a byte-identical main-thread stack across every map — an infinite loop insidelibserver.soCEnvBeamthink, matching Valve csgo-osx-linux#4530 "CEnvBeam infinite loop".Root cause
BeamLine.Draw()creates anenv_beambut never setsBeamType. With no explicit type the engine treats the code-spawned beam as entity-anchored and walksm_pSceneNode->m_pParent->m_pOwnerto resolve a scene owner that never exists, hanging the main thread forever (Linux) → engine watchdog kills the process. These beams back zones, trails, and warden markers, so they're created every round on every map — hence the map-independent crash-loop. (RayTrace's nativeDrawBeamis disabled viaDrawBeam = 0, soBeamLineis the only activeenv_beamsource.)Fix
Set
BeamType = BeamType_t.BEAM_POINTS— a pure origin→EndPos world-space beam that skips scene-owner resolution entirely. One-line behavioral change; all beam visuals (zones/trails/markers) keep working, minus the crash.Validation
:devserver image — no CEnvBeam watchdog crash / no new Accelerator dumps across map rotation, laser visuals intact