beyond-all-reason / beyond-all-reason/bar_widgets
Smart Area Reclaim: hangs main thread ~30s on wide reclaim areas (regression with recoil_2026.07.04 + NVIDIA 616.56)
- Dominant language
- No language data
- Stars
- 2
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the bug**
Smart Area Reclaim hangs the engine main thread for ~30 seconds when a teammate selects a wide reclaim area, causing the watchdog to kill the game ~50 minutes into a match. Started appearing after the `recoil_2026.07.04` engine build (Aug 21, 2026) combined with NVIDIA driver `32.0.16.1656` (Aug 20, 2026). The widget code itself has not changed; the regression is in how the new engine build interacts with the widget's wide-area scan under the new driver.
**To Reproduce**
1. Install BAR test-31177-b64aa4e + engine recoil_2026.07.04 (the current bundled version from the launcher)
2. Keep Smart Area Reclaim (`gui_smart_reclaim.lua`) enabled
3. Play a wide-reclaim map — confirmed on "All That Glitters v2.2.3", likely affects any large open reclaim area
4. Have a teammate select a wide reclaim area at roughly the 45–50 minute mark
5. Main thread hangs ~30 seconds; engine watchdog fires; game dies
**Expected behavior**
Wide reclaim scan completes within frame budget, or yields to the main thread so the watchdog does not trigger.
**Actual behavior**
```
[t=00:47:23.331985] Demon is being attacked!
[t=00:47:38.845162] Allies: eco just keep our canyon alive pls
[t=00:48:13.789421] Warning: [Watchdog] Hang detection triggered for Spring 2026.07.04.
[t=00:48:13.789507] Warning: (in threads: {main,load,audio,vfsi}={1,0,0,0})
```
After the watchdog fires, the engine repeats an OPENGL32 error every ~30 seconds and then dumps/exits. The "main=1" line is the main thread waiting on the widget's reclaim scan.
**Engine infolog (relevant tail — full log attached)**
```
[GL vendor : NVIDIA Corporation]
[GL renderer : NVIDIA GeForce RTX 5070 Ti Laptop GPU/PCIe/SSE2]
[GL version : 4.6.0 NVIDIA 616.56]
[Smart Area Reclaim] Warning: Smart reclaim area is too large, limiting size (fires 4x between t=00:23 and t=00:39)
[t=00:48:13.789421] Warning: [Watchdog] Hang detection triggered for Spring 2026.07.04.
[t=00:48:13.789507] Warning: (in threads: {main,load,audio,vfsi}={1,0,0,0})
```
**Workaround**
Disable the widget in BAR launcher → Settings → Widgets → uncheck "Smart Area Reclaim". Game is stable for 60+ minutes after that.
**System info**
- OS: Windows 11
- GPU: NVIDIA GeForce RTX 5070 Ti Laptop GPU
- Driver: 32.0.16.1656 (Aug 20 2026)
- BAR: Beyond All Reason test-31177-b64aa4e
- Engine: recoil_2026.07.04
- Map: All That Glitters v2.2.3
- infolog.txt attached
**Notes**
Same widget has been used for months without issue on engine builds ≤ `recoil_2026.06.12`. The new engine build (Jul 4 2026 → deployed to launcher around Aug 21 2026) appears to have changed GL context behavior such that the widget's per-frame wide-area scan now exceeds the watchdog threshold. Also NVIDIA driver `32.0.16.1656` (Aug 20) shipped the same week and changed OpenGL texture update behavior, which may be contributing. Filing the engine side separately in beyond-all-reason/RecoilEngine.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with gui_smart_reclaim.lua and reproduce the wide-area selection on the listed engine, map, and NVIDIA driver versions while checking the attached infolog. Trace the per-frame wide-area scan and compare behavior with engine builds up to recoil_2026.06.12; done means wide reclaim completes within the frame budget without triggering the watchdog.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- game-dev, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100