JACoders / OpenJK

Community effort to maintain and improve Jedi Academy (SP & MP) + Jedi Outcast (SP only) released by Raven Software
GNU General Public License v2.0
2.03k stars 614 forks source link

JA, SP, linux x86: crashing on swinging a lightsaber. #332

Closed haoNoQ closed 11 years ago

haoNoQ commented 11 years ago

I always crash when i just start a new ja sp game and swing a lightsaber a few times. Not necessarily after the first time, but 5 or 6 swings are usually enough.

openjk_sp.i386: /home/noq/openjk/OpenJK/code/qcommon/q_math.cpp:557:  float Q_rsqrt(float): Assertion `!(sizeof (y) == sizeof (float) ? __isnanf (y) : sizeof (y) == sizeof (double) ? __isnan (y) : __isnanl (y))' failed.

Backtrace:

#0  0xb7fdd424 in __kernel_vsyscall ()
#1  0xb78aa80f in raise () from /lib/libc.so.6
#2  0xb78ac0f3 in abort () from /lib/libc.so.6
#3  0xb78a3667 in __assert_fail_base () from /lib/libc.so.6
#4  0xb78a3717 in __assert_fail () from /lib/libc.so.6
#5  0xb751eb0b in Q_rsqrt (number=-nan(0x400000)) at /home/noq/openjk/OpenJK/code/qcommon/q_math.cpp:557               
#6  0xb75546dd in VectorNormalizeFast (v=0xbfffb2c8) at /home/noq/openjk/OpenJK/code/rd-vanilla/../server/../qcommon/q_shared.h:865                                     
#7  0xb7553bc9 in R_MarkFragments (numPoints=4, points=0xbfffbe78, projection=0xbfffd5a4, maxPoints=384, pointBuffer=0xbfffc398, maxFragments=128, fragmentBuffer=0xbfffbf98) at /home/noq/openjk/OpenJK/code/rd-vanilla/tr_marks.cpp:301
#8  0x0804bc2e in CL_CgameSystemCalls (args=0xbfffbdf0) at /home/noq/openjk/OpenJK/code/client/cl_cgame.cpp:899
#9  0x08073c16 in VM_DllSyscall (arg=28) at /home/noq/openjk/OpenJK/code/client/vmachine.cpp:128
#10 0xa47c7324 in cgi_CM_MarkFragments (numPoints=4, points=0xbfffbe78, projection=0xbfffd5a4, maxPoints=384, pointBuffer=0xbfffc398, maxFragments=128, fragmentBuffer=0xbfffbf98) at /home/noq/openjk/OpenJK/code/cgame/cg_syscalls.cpp:175
#11 0xa47ab932 in CG_ImpactMark (markShader=524, origin=0xaf97018, dir=0xaf97030, orientation=0, red=1, green=1, blue=1, alpha=1, alphaFade=0, radius=1.10000002, temporary=0) at /home/noq/openjk/OpenJK/code/cgame/cg_marks.cpp:171
#12 0xa47bcd76 in CG_AddSaberBladeGo (cent=0xa4f3ab40, scent=0xa4f3ab40, saber=0x0, renderfx=128, modelIndex=1, origin=0xbfffdff8, angles=0xbfffe53c, saberNum=0, bladeNum=0) at /home/noq/openjk/OpenJK/code/cgame/cg_players.cpp:6540
#13 0xa47c051b in CG_Player (cent=0xa4f3ab40) at /home/noq/openjk/OpenJK/code/cgame/cg_players.cpp:7433                
#14 0xa4795d6d in CG_AddCEntity (cent=0xa4f3ab40) at /home/noq/openjk/OpenJK/code/cgame/cg_ents.cpp:2371               
#15 0xa47960aa in CG_AddPacketEntities (isPortal=0) at /home/noq/openjk/OpenJK/code/cgame/cg_ents.cpp:2475             
#16 0xa47ceef3 in CG_DrawActiveFrame (serverTime=24206, stereoView=STEREO_CENTER) at /home/noq/openjk/OpenJK/code/cgame/cg_view.cpp:2149
#17 0xa479c719 in vmMain (command=3, arg0=24206, arg1=0, arg2=0, arg3=139166044, arg4=37, arg5=-1073748088, arg6=24206, arg7=-1073748032) at /home/noq/openjk/OpenJK/code/cgame/cg_main.cpp:119                                
#18 0x08073bf6 in VM_Call (callnum=3) at /home/noq/openjk/OpenJK/code/client/vmachine.cpp:56                           
#19 0x0804d52d in CL_CGameRendering (stereo=STEREO_CENTER) at /home/noq/openjk/OpenJK/code/client/cl_cgame.cpp:1506
#20 0x0805d45d in SCR_DrawScreenField (stereoFrame=STEREO_CENTER) at /home/noq/openjk/OpenJK/code/client/cl_scrn.cpp:459
#21 0x0805d517 in SCR_UpdateScreen () at /home/noq/openjk/OpenJK/code/client/cl_scrn.cpp:509
#22 0x0805a078 in CL_Frame (msec=40, fractionMsec=0) at /home/noq/openjk/OpenJK/code/client/cl_main.cpp:888
#23 0x0808f6f1 in Com_Frame () at /home/noq/openjk/OpenJK/code/qcommon/common.cpp:1314
#24 0x080fb153 in main (argc=1, argv=0xbffffad4) at /home/noq/openjk/OpenJK/code/sys/sys_main.cpp:409
ensiform commented 11 years ago

Can't you just ignore the assert?

xycaleth commented 11 years ago

Shouldn't be ignoring this assert. This seems like a legitimate issue.

ensiform commented 11 years ago

Looks okay to ignore tbh. Considering the input is coming from a normal based on a surface I'm not sure it's directly fixable.

xycaleth commented 11 years ago

Everything's fixable :D

ensiform commented 11 years ago

Unless it was a map related surface :d