Jump to content

Recommended Posts

Posted

Nitmod 2.3.5

View File

Version 2.3.5 is available (Feb. 14th 2023)

Compatible with ET:Legacy 64bit for MacOS and Linux!

Download

You only need to replace the qagame .dll or.so and the pk3 files with the new ones to update your server.
You can now also host a N!tmod server on MacOS with the qagame_mac provided in the package !.
If you are installing for the first time, or updating from a version prior to 2.3, don't forget to check the Setup tutorial and the NxAC Setup tutorial.


 

  • Like 1
  • 3 years later...
Posted

NitMod 2.3.5 - Server crash: infinite recursion in Bullet_Fire_Extended() causing stack overflow

Reporting a reproducible server crash with a full backtrace, in case it helps others running NitMod 2.3.5.

Environment:
- NitMod 2.3.5 (Feb 14 2023 build), qagame.mp.x86_64.so
- ET:Legacy etlded.x86_64 (Jan 20 2025 build), 64-bit
- Ubuntu 26.04 LTS, x86_64
- Omni-Bot 0.87.1 enabled, ~24 bots
- Map: bremen_final
- Gametype: 2
- Uptime before crash: 5h 4m

What happened:
Server died with SIGSEGV (code=dumped, status=11). Nothing unusual in the logs beforehand - normal gameplay, with only "Warning: setstate called and no entities found" 17 seconds prior.

Root cause (from a 4.2GB core dump analysed with gdb):
Bullet_Fire_Extended() calls itself recursively without ever hitting a termination condition. The stack shows approximately 57,890 consecutive frames of the same function, exhausting the stack until the crash surfaces in the engine's trace code.

Top of the crashing thread:

#0  CM_CalcTraceBounds () at cm_trace.c:486        <- SIGSEGV
#1  CM_Trace () at cm_trace.c:1558
#2  CM_TransformedBoxTrace () at cm_trace.c:1774
#3  SV_ClipMoveToEntities () at sv_world.c:684
#4  SV_Trace () at sv_world.c:783
#5  SV_GameSystemCalls () at sv_game.c:521
#6  VM_DllSyscall () at vm.c:362
#7  trap_Trace () from nitmod/qagame.mp.x86_64.so
#8  trap_EngineerTrace () from nitmod/qagame.mp.x86_64.so
#9  G_TraceNew () from nitmod/qagame.mp.x86_64.so
#10 Bullet_Fire_Extended () from nitmod/qagame.mp.x86_64.so
#11 Bullet_Fire_Extended () from nitmod/qagame.mp.x86_64.so
... (57,890 frames total)

Total frames in the backtrace: 57,953.

The crash surfaces inside the engine (cm_trace.c), but the actual fault is in the mod - the bullet penetration logic in Bullet_Fire_Extended() recurses without a depth limit or proper exit condition. Adding a recursion depth cap would prevent this.

Note: I tried to report this on the official tracker at etmods.net, but registration fails - their mail server (mail.etmods.net) refuses connections, so no confirmation code can be sent. Posting here instead in case anyone else hits the same crash.

Happy to provide the full backtrace (7MB) if useful.

  • Haha 1
  • ET Member
Posted (edited)

Artificial Intelligence Ai GIF

 

N!TMod development has ceased as far as I am aware and the last even post of the website was 2024 and Seb was working on a new site as far as I am aware. If you are able to trace this massive dump why not just open the .so in IDA and add some nops to apply your preposed fix?

 

 

Edited by RNGesus
*edited users on linux changed olly to IDA and dll to .SO

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.