Razish / japp

JA++ server and client modification for Jedi Academy
GNU General Public License v2.0
44 stars 30 forks source link

Fix: JA++ crashing with large skin packs #408

Open Mkilbride opened 7 years ago

Mkilbride commented 7 years ago
             JA++ Crash Log
========================================
Version: JA++, 32 bits, Jun 26 2016, 5d100dd (Windows)
Side: Client-side
Build Date/Time: Jun 26 2016 04:13:50
Operating system: Microsoft Windows 7 Ultimate Edition Service Pack 1 (build 7601), 64-bit
Crash type: Exception

----------------------------------------
          Exception Information
----------------------------------------
Process: C:\Program Files (x86)\Steam\steamapps\common\Jedi Academy\GameData\openjk.x86.exe
Exception in module: msvcrt.dll
Exception Address: 0x75D48B23 (msvcrt.dll+0x18B23)
Exception Code: 0xC0000005 (Access Violation)
Attempted to read data at: 0x6170735F

----------------------------------------
              Register Dump
----------------------------------------
General Purpose & Control Registers:
EAX: 0x746F4E28, EBX: 0x6170735F, ECX: 0x6170735F, EDX: 0x0046B0DC
EDI: 0x00728B30, ESI: 0x0046B0DC, ESP: 0x0046A858, EBP: 0x68D19E60
EIP: 0x75D48B23

Segment Registers:
CS: 0x00000023, DS: 0x0000002B, ES: 0x0000002B
FS: 0x00000053, GS: 0x0000002B, SS: 0x0000002B

----------------------------------------
               Module List
----------------------------------------
0x00FC0000 - openjk.x86 - C:\Program Files (x86)\Steam\steamapps\common\Jedi Academy\GameData\openjk.x86.exe
0x77690000 - ntdll - C:\Windows\SysWOW64\ntdll.dll
0x76330000 - kernel32 - C:\Windows\syswow64\kernel32.dll
0x75980000 - KERNELBASE - C:\Windows\syswow64\KERNELBASE.dll
0x753B0000 - USER32 - C:\Windows\syswow64\USER32.dll
0x75A20000 - GDI32 - C:\Windows\syswow64\GDI32.dll
0x750A0000 - LPK - C:\Windows\syswow64\LPK.dll
0x75AC0000 - USP10 - C:\Windows\syswow64\USP10.dll
0x75D30000 - msvcrt - C:\Windows\syswow64\msvcrt.dll
0x75610000 - ADVAPI32 - C:\Windows\syswow64\ADVAPI32.dll
0x755E0000 - sechost - C:\Windows\SysWOW64\sechost.dll
0x750C0000 - RPCRT4 - C:\Windows\syswow64\RPCRT4.dll
0x74FF0000 - SspiCli - C:\Windows\syswow64\SspiCli.dll
0x74FE0000 - CRYPTBASE - C:\Windows\syswow64\CRYPTBASE.dll
0x764E0000 - SHELL32 - C:\Windows\syswow64\SHELL32.dll
0x77160000 - SHLWAPI - C:\Windows\syswow64\SHLWAPI.dll
0x74DF0000 - WINMM - C:\Windows\system32\WINMM.dll
0x71D90000 - WSOCK32 - C:\Windows\system32\WSOCK32.dll
0x76440000 - WS2_32 - C:\Windows\syswow64\WS2_32.dll
0x76310000 - NSI - C:\Windows\syswow64\NSI.dll
0x10000000 - OpenAL32 - C:\Program Files (x86)\Steam\steamapps\common\Jedi Academy\GameData\OpenAL32.dll
0x75B60000 - ole32 - C:\Windows\syswow64\ole32.dll
0x6C740000 - SDL2 - C:\Program Files (x86)\Steam\steamapps\common\Jedi Academy\GameData\SDL2.dll
0x75CD0000 - IMM32 - C:\Windows\syswow64\IMM32.DLL
0x771C0000 - MSCTF - C:\Windows\syswow64\MSCTF.dll
0x754B0000 - OLEAUT32 - C:\Windows\syswow64\OLEAUT32.dll
0x720A0000 - VERSION - C:\Windows\system32\VERSION.dll
0x56200000 - MSVCP120 - C:\Program Files (x86)\Steam\steamapps\common\Jedi Academy\GameData\MSVCP120.dll
0x500F0000 - MSVCR120 - C:\Program Files (x86)\Steam\steamapps\common\Jedi Academy\GameData\MSVCR120.dll
0x71E00000 - CRYPTSP - C:\Windows\system32\CRYPTSP.dll
0x71DC0000 - rsaenh - C:\Windows\system32\rsaenh.dll
0x0F1B0000 - rd-vanilla_x86 - C:\Program Files (x86)\Steam\steamapps\common\Jedi Academy\GameData\rd-vanilla_x86.dll
0x720E0000 - OPENGL32 - C:\Windows\system32\OPENGL32.dll
0x72740000 - GLU32 - C:\Windows\system32\GLU32.dll
0x71FB0000 - DDRAW - C:\Windows\system32\DDRAW.dll
0x72D30000 - DCIMAN32 - C:\Windows\system32\DCIMAN32.dll
0x76020000 - SETUPAPI - C:\Windows\syswow64\SETUPAPI.dll
0x75050000 - CFGMGR32 - C:\Windows\syswow64\CFGMGR32.dll
0x75540000 - DEVOBJ - C:\Windows\syswow64\DEVOBJ.dll
0x711D0000 - dwmapi - C:\Windows\system32\dwmapi.dll
0x712F0000 - uxtheme - C:\Windows\system32\uxtheme.dll
0x560B0000 - FRAPS32 - C:\Fraps\FRAPS32.DLL
0x00310000 - RTSSHooks - C:\Program Files (x86)\RivaTuner Statistics Server\RTSSHooks.dll
0x72C80000 - MSVCR90 - C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCR90.dll
0x5B300000 - nvinject - c:\program files (x86)\nvidia corporation\nvstreamsrv\nvinject.dll
0x065F0000 - nvoglv32 - C:\Windows\system32\nvoglv32.DLL
0x72C70000 - WTSAPI32 - C:\Windows\system32\WTSAPI32.dll
0x710D0000 - Dbghelp - C:\Windows\system32\Dbghelp.dll
0x75950000 - WINTRUST - C:\Windows\syswow64\WINTRUST.dll
0x756C0000 - CRYPT32 - C:\Windows\syswow64\CRYPT32.dll
0x758B0000 - MSASN1 - C:\Windows\syswow64\MSASN1.dll
0x712B0000 - ntmarta - C:\Windows\system32\ntmarta.dll
0x759D0000 - WLDAP32 - C:\Windows\syswow64\WLDAP32.dll
0x70720000 - WINSTA - C:\Windows\system32\WINSTA.dll
0x758C0000 - CLBCatQ - C:\Windows\syswow64\CLBCatQ.DLL
0x5B3D0000 - dinput8 - C:\Windows\SysWOW64\dinput8.dll
0x73F60000 - HID - C:\Windows\system32\HID.DLL
0x74E30000 - dsound - C:\Windows\System32\dsound.dll
0x74DC0000 - POWRPROF - C:\Windows\System32\POWRPROF.dll
0x6B6D0000 - MMDevApi - C:\Windows\System32\MMDevApi.dll
0x719B0000 - PROPSYS - C:\Windows\System32\PROPSYS.dll
0x67560000 - AUDIOSES - C:\Windows\system32\AUDIOSES.DLL
0x6FDD0000 - avrt - C:\Windows\system32\avrt.dll
0x68740000 - OJK8F - C:\Users\MKILBR~1\AppData\Local\Temp\OJK8F.tmp
0x76320000 - PSAPI - C:\Windows\syswow64\PSAPI.DLL

----------------------------------------
          Disassembly/Source code
----------------------------------------
Crash location located at 0x75D48B23: msvcrt.dll::strcmp(+0x12) [Func at 0x75D48B11]
No source code information available

^^^^^^^^^^
0x75D48B03 - jnz dword ptr 0x75d48575       (memcmp+0xC00)
0x75D48B09 - xor esi, esi                  
0x75D48B0B - test esi, esi                 
0x75D48B0D - jnz 0x75d48ab1                 (memcmp+0x113C)
0x75D48B0F - jmp short 0x75d48a9f          
0x75D48B11 - mov edx, [esp+0x4]            
0x75D48B15 - mov ecx, [esp+0x8]            
0x75D48B19 - test edx, 0x3                 
0x75D48B1F - jnz 0x75d48b54                 (strcmp+0x43)
0x75D48B21 - mov eax, [edx]                

=============================================
0x75D48B23 - cmp al, [ecx]                  <-- Exception
=============================================

0x75D48B25 - jnz 0x75d48b6d                 (strcmp+0x5C)
0x75D48B27 - or al, al                     
0x75D48B29 - jz short 0x75d48b51            (strcmp+0x40)
0x75D48B2B - cmp ah, [ecx+0x1]             
0x75D48B2E - jnz 0x75d48b6d                 (strcmp+0x5C)
0x75D48B30 - or ah, ah                     
0x75D48B32 - jz short 0x75d48b51            (strcmp+0x40)
0x75D48B34 - shr eax, 0x10                 
0x75D48B37 - cmp al, [ecx+0x2]             
0x75D48B3A - jnz 0x75d48b6d                 (strcmp+0x5C)
vvvvvvvvvv

----------------------------------------
                Backtrace
----------------------------------------
msvcrt.dll::strcmp(+0x12) [0x75D48B23]
OJK8F.tmp::Z12Script_DeferP9itemDef_sPPc(+0x105) [0x68766495]
OJK8F.tmp::Z10Text_WidthPKcfib(+0x3F) [0x6877797F]
OJK8F.tmp::Z10Q_strncpyzPcPKci(+0x30) [0x6877D5B0]
OJK8F.tmp::Z12Script_DeferP9itemDef_sPPc(+0x667) [0x687669F7]
Unknown [0x0046B0DC]
Unknown [0x3F800000]
Unknown [0x20203A65]
Unknown [0x61206F54]
SHELL32.dll::Ordinal733(+0x7CC5) [0x76697463]
Unknown [0x20657461]
Unknown [0x20656874]
WINSTA.dll::WinStationQuerySessionVirtualIP(+0x89A5) [0x7074656A]
Unknown [0x2C6B6361]
Unknown [0x6D756A20]
Unknown [0x74202C70]
Unknown [0x206E6568]
Unknown [0x73657270]
Unknown [0x75272073]
Unknown [0x20276573]
Unknown [0x6C696877]
Unknown [0x6E692065]
Unknown [0x00680020]

----------------------------------------
            Extra Information
----------------------------------------
========================================
             End of crash log
========================================
ensiform commented 7 years ago

Appears to be a string function call with a null pointer. @Razish or possibly @EpicLoyd will have to investigate more.

Mkilbride commented 7 years ago

Thanks. It was working perfectly before, but today I decided to go and update both JA++ and OpenJK. Something I haven't done since last October. OpenJK opens fine by itself, but JA++ will not.

Razish commented 7 years ago

It's going to be an issue with one of these PK3s:

WalksV2.pk3 (5 files)
_revan.pk3 (40 files)
zzRemnants.pk3 (103 files)
Z Mortal Kombat Ninjas!.pk3 (108 files)
YOThireslevelshotsmp.pk3 (26 files)
Yoda_Hilt_default_overwrite.pk3 (5 files)
yaleck_vos.pk3 (617 files)
Windu_Ep2_Hilt_default_overwrite.pk3 (11 files)
WinduEp1_Hilt_default_overwrite.pk3 (5 files)
WalksV2.pk3 (5 files)
vas_male_jedi.pk3 (131 files)
vas_female_jedi.pk3 (143 files)
Vader_Hilt_default_overwrite.pk3 (11 files)
VaderVm2.2.pk3 (108 files)
TSDarklier.pk3 (45 files)
tidus_longsword.pk3 (59 files)
tidus_brotherhood.pk3 (51 files)
StaffWalkV2.pk3 (5 files)
SITH_Customization.pk3 (5551 files)
SingleWalk.pk3 (5 files)
show7_skins_v1.pk3 (66 files)
RevanDark_StarWars_Hilts.pk3 (176 files)
Quigon_Hilt_default_overwrite.pk3 (6 files)
Prequel5_Hilt_default_overwrite.pk3 (6 files)
Prequel4_Hilt_default_overwrite.pk3 (10 files)
Prequel3_Hilt_default_overwrite.pk3 (5 files)
Prequel2_Hilt_default_overwrite.pk3 (5 files)
Prequel1_Hilt_default_overwrite.pk3 (8 files)
Obiwan_Ep1_Ep2_Hilt_default_overwrite.pk3 (5 files)
ObiwanEp4_Hilt_default_overwrite.pk3 (14 files)
ObiEp3_Hilt_default_overwrite.pk3 (14 files)
ninjaassassin.pk3 (114 files)
mitsurugi.pk3 (108 files)
Maul_Hilt_default_overwrite.pk3 (10 files)
lukeyodasounds.pk3 (39 files)
LukeEp6_Hilt_default_overwrite.pk3 (14 files)
LukeEp5_Hilt_default_overwrite.pk3 (11 files)
Kyrios.pk3 (96 files)
Kotorpack_v.8.0_CompleteEdition.pk3 (5322 files)
Kensai_JA_Hilts.pk3 (101 files)
Jedi'sHomeJL_II.pk3 (120 files)
JCP_fixed.pk3 (3187 files)
gv_raiden_JA.pk3 (48 files)
grayfox.pk3 (107 files)
ffxweps_sp.pk3 (5 files)
ffa3-eocplugin.pk3 (508 files)
EpisodeIII_Yoda_Kaio.pk3 (62 files)
Ep3 lightsabers alt.pk3 (16 files)
elegance_hud.pk3 (13 files)
Dooku_Hilt_default_overwrite.pk3 (11 files)
dante.pk3 (49 files)
ct_cultist.pk3 (99 files)
Clair_Claymore.pk3 (18 files)
auron_katana.pk3 (46 files)
Anakin_Ep3_Hilt_default_overwrite.pk3 (12 files)
Anakin_Ep2_Hilt_default_overwrite.pk3 (12 files)

Can you find out which one and send it my way to fix it up?

Mkilbride commented 7 years ago

How? Remove them one at a time? They all worked fine before.

I removed them all and yeah, it now boots. So I should just re-add them one at a time?

Alright, I went through time, re-adding until it stopped booting.

Kotorpack_v.8.0_CompleteEdition.pk3 seems to be the issue. It worked with an earlier OpenJK + JA++, I wonder why not now?

Razish commented 7 years ago

Hmph. I just tried using that PK3 and it worked fine. It may just be a size limit/overflow. Can you tell me which other mods are very large / have a lot of skins, models, maps, scripts etc? Is that Spanki's Sith Customisation?

EDIT: I got it to crash with a similar stack trace on release builds with Spanki's packs (sith+jedi) and KotOR pack. Doesn't crash on debug builds. Let me try a couple things...

EDIT2: 1) it only happens when optimisations are enabled (not in debug builds) 2) it's not reaching anywhere near menu/string limits, and raising them ridiculously doesn't help 2.5) it occurs when using base assets + Spanki's Sith and Jedi packs + KotOR pack, but not any other permutation of these mods. 3) it's crashing early on in parsing, when it hasn't even gotten through assets1.pk3

Mkilbride commented 7 years ago

Didn't really understand all that.