OpenXRay / OpenXRay/xray-16

[CS] - some boxes break with a Segfault --> moving_objects::on_object_move(moving_object*)

Open
#981 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug
Dominant language
C++
Stars
3.6k
Forks
536
Avg merge
6d 1h
Merged PRs (30d)
3

Description

Describe the bug
when you keep breaking boxes the engine ends up failing on the following message:

moving_objects::on_object_move(moving_object*) () from /lib/x86_64-linux-gnu/xrGame.so

To Reproduce
keep breaking boxes until the engine ends up segfaulting.

Screenshots
none captured.

BugTrap error report
when it crashes gdb gives this message:

Click here to expand/collapse.

(...)

[LUA] ....K.E.R. - Clear Sky\bind_stalker:(192):on_item_take [medkit36359]
[LUA] RESET INVULNERABILITY. npc[sim_default_csky_022316] = [false]
[LUA] ...A.L.K.E.R. - Clear Sky\xr_walker:(101):DEBUG: set_scheme: scheme='walker', section='walker1@mar_smart_terrain_5_8_guard_2_walk', gulag_name='mar_smart_terrain_5_8'
[LUA] ...A.L.K.E.R. - Clear Sky\xr_walker:(103):DEBUG: set_scheme: storage assigned

Thread 1 "Primary thread" received signal SIGSEGV, Segmentation fault.
0x00007fffe058846c in moving_objects::on_object_move(moving_object*) () from /lib/x86_64-linux-gnu/xrGame.so
(gdb) continue
Continuing.

FATAL ERROR

[error] Expression :
[error] Function : handler_base
[error] File : /home/biel/code/xray-16/src/xrCore/xrDebug.cpp
[error] Line : 848
[error] Description : segmentation fault

stack trace:

xrDebug::GatherInfo(char*, unsigned long, ErrorLocation const&, char const*, char const*, char const*, char const*)
xrDebug::Fail(bool&, ErrorLocation const&, char const*, char const*, char const*, char const*)
/lib/x86_64-linux-gnu/xrCore.so(+0x427ab) [0x7ffff7d077ab]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7ffff7717520]
/lib/x86_64-linux-gnu/xrGame.so(+0xd9f305) [0x7fffe03c5305]
/lib/x86_64-linux-gnu/xrGame.so(+0xfd34ad) [0x7fffe05f94ad]
/lib/x86_64-linux-gnu/xrGame.so(+0xc92017) [0x7fffe02b8017]
/lib/x86_64-linux-gnu/xrGame.so(+0x1535cf8) [0x7fffe0b5bcf8]
CObjectList::SingleUpdate(IGameObject*)
CObjectList::SingleUpdate(IGameObject*)
CObjectList::Update(bool)
IGame_Level::OnFrame()
/lib/x86_64-linux-gnu/xrGame.so(+0xeb16f8) [0x7fffe04d76f8]
CRenderDevice::FrameMove()
CRenderDevice::ProcessFrame()
/lib/x86_64-linux-gnu/xrEngine.so(+0x43e2b) [0x7ffff7f02e2b]
CRenderDevice::Run()
Startup()
RunApplication()
/usr/games/xr_3da(+0x1885) [0x555555555885]

Thread 1 "Primary thread" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7d0731f in xrDebug::Fail(bool&, ErrorLocation const&, char const*, char const*, char const*, char const*) () from /lib/x86_64-linux-gnu/xrCore.so
(gdb) quit
A debugging session is active.

Inferior 1 [process 245114] will be killed.

Quit anyway? (y or n) y

Desktop (please complete the following information):

  • OS: [Ubuntu 21.10]
  • OpenXRay build version [7fec9cfb98be7f9a2e970fd6908922f56862fbf6] with -DMASTER_GOLD=OFF

Additional context
using the modified gamedata/srcripts/xr_kamp.script provided by @Xottab-DUTY in https://github.com/OpenXRay/xray-16/issues/828

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the crash while repeatedly breaking boxes and inspect the reported moving_objects::on_object_move(moving_object*) entry point in the C++ engine. Use the CObjectList::SingleUpdate stack and xrCore/xrDebug.cpp:848 as debugging context, with the modified gamedata/srcripts/xr_kamp.script from issue 828. Done means the reproduction no longer produces the reported segmentation fault.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.