Jump to content
The Dark Mod Forums

Savegame problems


Haplo

Recommended Posts

I cut the stack trace at ntdll because the rest was not reliable. This is the full stack trace:

 

gamex86.dll!boost::detail::sp_counted_base::release()  Line 100 + 0x9 bytes	C++
gamex86.dll!boost::detail::shared_count::~shared_count()  Line 208	C++
gamex86.dll!boost::shared_ptr<ai::CommunicationSubsystem>::~shared_ptr<ai::CommunicationSubsystem>()  + 0x19 bytes	C++
gamex86.dll!_CallSettingFrame(unsigned long funclet=50261660, unsigned long pRN=259, unsigned long dwInCode=959095130)  Line 73	Asm
gamex86.dll!__FrameUnwindToState(EHRegistrationNode * pRN=0x02feee9c, void * pDC=0x02fecfd0, const _s_FuncInfo * pFuncInfo=0x0adcb6e0, int targetState=-1)  Line 1151	C++
gamex86.dll!__InternalCxxFrameHandler(EHExceptionRecord * pExcept=0x02fed490, EHRegistrationNode * pRN=0x02feee9c, _CONTEXT * pContext=0x02fecfdc, void * pDC=0x02fecfd0, const _s_FuncInfo * pFuncInfo=0x0adcb6e0, int CatchDepth=0, EHRegistrationNode * pMarkerRN=0x00000000, unsigned char recursive=0)  Line 479 + 0x13 bytes	C++
gamex86.dll!__CxxFrameHandler3(EHExceptionRecord * pExcept=0x02feee9c, EHRegistrationNode * pRN=0x02fecfdc, void * pContext=0x02fecfd0, void * pDC=0x02feee9c)  Line 365 + 0x1f bytes	C++
ntdll.dll!7c9032a8() 	
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]	
ntdll.dll!7c90327a() 	
ntdll.dll!7c92accd() 	
gamex86.dll!__set_flsgetvalue()  Line 256 + 0xc bytes	C
02fecfcc()	
gamex86.dll!__set_flsgetvalue()  Line 256 + 0xc bytes	C
00010007()	
ntdll.dll!7c9032a8() 	
ntdll.dll!7c90327a() 	
ntdll.dll!7c92aa0f() 	
ntdll.dll!7c90e48a() 	
kernel32.dll!7c812afb() 	
kernel32.dll!7c812afb() 	
kernel32.dll!7c812afb() 	
Doom3.exe!00422475() 	

 

What is the best way forward?

Link to comment
Share on other sites

  • Replies 106
  • Created
  • Last Reply

Top Posters In This Topic

Not much luck. Here is the stack trace with the full symbols:

 

gamex86.dll!boost::detail::sp_counted_base::release()  Line 100 + 0x9 bytes	C++
gamex86.dll!boost::detail::shared_count::~shared_count()  Line 208	C++
gamex86.dll!boost::shared_ptr<ai::MovementSubsystem>::~shared_ptr<ai::MovementSubsystem>()  + 0x19 bytes	C++
gamex86.dll!_CallSettingFrame(unsigned long funclet=50261660, unsigned long pRN=259, unsigned long dwInCode=872840533)  Line 73	Asm
gamex86.dll!__FrameUnwindToState(EHRegistrationNode * pRN=0x02feee9c, void * pDC=0x02fecfd0, const _s_FuncInfo * pFuncInfo=0x0adcb6e0, int targetState=-1)  Line 1151	C++
gamex86.dll!__InternalCxxFrameHandler(EHExceptionRecord * pExcept=0x02fed490, EHRegistrationNode * pRN=0x02feee9c, _CONTEXT * pContext=0x02fecfdc, void * pDC=0x02fecfd0, const _s_FuncInfo * pFuncInfo=0x0adcb6e0, int CatchDepth=0, EHRegistrationNode * pMarkerRN=0x00000000, unsigned char recursive=0)  Line 479 + 0x13 bytes	C++
gamex86.dll!__CxxFrameHandler3(EHExceptionRecord * pExcept=0x02feee9c, EHRegistrationNode * pRN=0x02fecfdc, void * pContext=0x02fecfd0, void * pDC=0x02feee9c)  Line 365 + 0x1f bytes	C++
ntdll.dll!ExecuteHandler2@20()  + 0x26 bytes	
ntdll.dll!ExecuteHandler@20()  + 0x24 bytes	
Doom3.exe!006fa05e() 	
[Frames below may be incorrect and/or missing, no symbols loaded for Doom3.exe]	
Doom3.exe!007019a9() 	
Doom3.exe!00701c21() 	
Doom3.exe!00701d19() 	
Doom3.exe!006fa0ad() 	
ntdll.dll!ExecuteHandler2@20()  + 0x26 bytes	
ntdll.dll!ExecuteHandler@20()  + 0x24 bytes	
ntdll.dll!_KiUserExceptionDispatcher@8()  + 0xe bytes	
kernel32.dll!_RaiseException@16()  + 0x52 bytes	
Doom3.exe!006fb144() 	
Doom3.exe!00422475()

 

 

It seems the crash is in Doom3 itself.

Link to comment
Share on other sites

Not much luck. Here is the stack trace with the full symbols:

 

It seems the crash is in Doom3 itself.

Yes, seems like this is the case. I don't have any ideas what might be causing this, especially since it's not a single point of failure but several ones (loading and ending a mission). Do you have any special sound hardware or sound options activated? Maybe try to swap graphics drivers? It could be anything, I'm afraid.

Link to comment
Share on other sites

 This keeps getting more and more interesting. I tried TDM under Linux (Karmic64). I copied my savegames from Windows to Linux and loaded my Windows savegame. It loaded and played fine, but when I tried loading again/quitting the mission, I got this in the terminal (playing in Windowed mode):

 

Trying to exit gracefully..
--------- Game Map Shutdown ----------
--------------------------------------

 

 

And the whole OS froze. I could only salvage the system by pressing Ctrl+Alt+F1 and killing the Doom3 process. 

 

I ran TDM again, loaded the same savegame, walked around a bit, and saved it to a new slot. Then I loaded this new savegame, and the exact same crash happened.

 

 

 

 

Thinking maybe loading a Windows savegame is not a good idea, I started the mission from the beginning. Just like Windows, the first dozen or so saves/loads worked fine, but all of a sudden, loading threw me back to the desktop with:

 


--------- Game Map Shutdown ----------
TODO: Sys_SetClipboardData
--------- Game Map Shutdown ----------
WARNING: Door MetalChestLid_3 is not within a valid AAS area
WARNING: idClipModel::FreeTraceModel: tried to free uncached trace model
--------------------------------------
********************
ERROR: idPVS::FreeCurrentPVS: invalid handle
********************
signal caught: Segmentation fault
si_code 1
Trying to exit gracefully..
--------- Game Map Shutdown ----------
--------------------------------------
Shutting down sound hardware
----------- Alsa Shutdown ------------
close pcm
dlclose
--------------------------------------
idRenderSystem::Shutdown()
------------ Game Shutdown -----------
--------- Game Map Shutdown ----------
--------------------------------------
Shutdown event system
--------------------------------------
shutdown terminal support

 

 

What does this tell you?

Link to comment
Share on other sites

Here is where it happens in the code:

 

http://www.koders.com/cpp/fid68EDF3AB8235EA9815252E4FCC925F6E50EF02AC.aspx?s=md5 line 1143

 

/*
================
idPVS::FreeCurrentPVS
================
*/
void idPVS::FreeCurrentPVS( pvsHandle_t handle ) const {
if ( handle.i < 0 || handle.i >= MAX_CURRENT_PVS || handle.h != currentPVS[handle.i].handle.h ) {
	gameLocal.Error( "idPVS::FreeCurrentPVS: invalid handle" );
}
currentPVS[handle.i].handle.i = -1;
}

 

 

And since it might be helpful, I have listed the FMs that show this problem:

- The Crown of Penitence

- The Outpost

- Thieves

 

FMs that do not have this problem:

- The Dark Mod Training Mission

- The Chalice of Kings

- Patently Dangerous

 

 

Greebo, please let me know if I can provide you with any more information.

Link to comment
Share on other sites

  • 4 weeks later...

I have encountered the issue #1.

 

At the beginning of the mission quicksaving/loading works correctly. All the saves produced are "fine". But after some moment the savegame becomes "corrupted". After loading such a "corrupted" savegame:

 

  1. I can play the mission as long as I want, nothing strange happens.
  2. Saving the game works OK (but the produced saves are "corrupted" in the same way).
  3. When I try to quickload TDM crashes immediately (Visual Studio catches some exception). When I try to load a save which is "fine" it also crashes. When I try to quit mission it crashes. And when I win the mission it also crashes without showing stats screen or win movie.
  4. "Corrupted" quicksave can always be loaded from fresh TDM successfully. They can also be loaded after loading some "fine" savegames.
  5. The .save file size is as the same (20-22Mb) for both "fine" and "corrupted" saves.

So the problem is most likely in finishing game session. And this problem survives save + restart + load.

 

Now I have this problem in map: "Trapped!". Also seen the same problem in the other map.

 

In the first map I solved the problem by loading the last "fine" savegame and playing from it. In the "Trapped!" I decided to finish the mission without unnecessary loading...

 

I do not know what pushes the savegame into the "corrupted" state. This bug is very annoying since after catching it each loadgame requires TDM restarting (which is very slow). And it is very sneaky because you understand that the game is corrupted only at the first quickload after corruption. And this bug can really spoil the fun for those who maintains only one save file (for example who often quicksaves but never does ordinary save).

Link to comment
Share on other sites

 

Added a bug report to our tracker:

 

http://bugs.angua.at/view.php?id=2074

 

Maybe adding debug information on what problem the handle has or where the routine was called from could help?

 

From the list of FMs I don't see any common pattern.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

I've noticed that when you load a corrupted save it doesn't seam to load everything (the load bar doesn't get full), and there are aas errors reported in the doom3 console as thou the aas data has failed to load. In an uncorrupted save game these aas errors dont appear. the aas errors are reported just as aas with no number or rat after the aas.

 

I've also noticed this in an uncorrupted save game being reported in the doom3 console "Unknown token '}'" it turns up in the middle of the doom3 console reporting removing degenerate triangles.

 

error from windows xp event viewer Faulting application doom3.exe, version 1.0.0.1, faulting module gamex86.dll, version 0.0.0.0, fault address 0x0000c1f4, produced when loading a corrupt game save a 2nd time, fault address is always the same when doom3 crashes on bad save file load.

Link to comment
Share on other sites

I've noticed that when you load a corrupted save it doesn't seam to load everything (the load bar doesn't get full), and there are aas errors reported in the doom3 console as thou the aas data has failed to load. In an uncorrupted save game these aas errors dont appear. the aas errors are reported just as aas with no number or rat after the aas.

 

I've also noticed this in an uncorrupted save game being reported in the doom3 console "Unknown token '}'" it turns up in the middle of the doom3 console reporting removing degenerate triangles.

 

error from windows xp event viewer Faulting application doom3.exe, version 1.0.0.1, faulting module gamex86.dll, version 0.0.0.0, fault address 0x0000c1f4, produced when loading a corrupt game save a 2nd time, fault address is always the same when doom3 crashes on bad save file load.

 

In my case it does not even get to the load screen or the load bar. The game crashes immediately after pressing the quickload key.

Link to comment
Share on other sites

In my case it does not even get to the load screen or the load bar. The game crashes immediately after pressing the quickload key.

The game crashes when you press quickload while already running a corrupted game.  More precisely: the game crashes when it tries to destroy a corrupted game session.

 

I think he means loading the corrupted save from fresh TDM game.

 

well its crashing for me from a savegame file thats 30gigabytes in size, from other maps they're around the 12gigabyte mark, although this seems rather large as well, due to doom3 saves being around the 4gigabyte size for all map saves.

Maybe you mean megabytes?  :wacko:

Link to comment
Share on other sites

The game crashes when you press quickload while already running a corrupted game. More precisely: the game crashes when it tries to destroy a corrupted game session.

 

I think he means loading the corrupted save from fresh TDM game.

 

 

Maybe you mean megabytes? :wacko:

 

30 Mb is about right for a map the size of Patently Dangerous. Vanilla D3 doesn't have nearly as many features: sticking arrows, candle lights, missing loot markers, missing item markers, blood markers, moveables; so it's very unfair to compare a small D3 map's savegave and a large TDM map's savegame.

 

Hell, one of my savegame files in The Nameless Mod reached 146 mb! :o

yay seuss crease touss dome in ouss nose tair

Link to comment
Share on other sites

Hm, if we have a corrupted savegame that crashes D3 whenever you load it, regardless what you do first, it might be debuggable. Is the file downloadable somewhere? (I probably can't debug it, tho).

 

As far as I understand our code, there shouldn't be a problem to load a windows savegame in linux - but greebo could be more specific in answering this.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

I ran TDM in the debug mode and caught exception with the same stacktrace as reported by Haplo.

 

The interesting thing about FreeCurrentPVS error: it is a well-known problem of quake4 servers. Google leads to:

http://www.quake3wor...hp?f=17&t=22693

http://www.q4max.com...opic.php?p=6128

 

And q4max even introduced some sort of "solution":

fix: (RB) "FreeCurrentPVS: invalid handle" server errors. Error reduced to a warning, code protected so that it cannot do any harm, and causes of calling FreeCurrentPVS with an invalid handle corrected. (from http://www.q4max.com/changelog/ )

 

 

As far as I understand they simply ignored this assert  :laugh:

Link to comment
Share on other sites

I ran TDM in the debug mode and caught exception with the same stacktrace as reported by Haplo.

 

The interesting thing about FreeCurrentPVS error: it is a well-known problem of quake4 servers. Google leads to:

http://www.quake3wor...hp?f=17&t=22693

http://www.q4max.com...opic.php?p=6128

 

And q4max even introduced some sort of "solution":

fix: (RB) "FreeCurrentPVS: invalid handle" server errors. Error reduced to a warning, code protected so that it cannot do any harm, and causes of calling FreeCurrentPVS with an invalid handle corrected. (from http://www.q4max.com/changelog/ )

 

 

As far as I understand they simply ignored this assert  :laugh:

 

Maybe we should do the same? Just kidding.

 

I remeber dimly that we had such an error if you teleported one light from one room to another and then extinguished it (or not?). Anyway, an entity suddenly going from one PVS to the next triggered a bug. That was fixed by greebo, but maybe there is another similiar bug? Like something falling out of the world, or getting moved/kicked through a portal? Or moving "through" a wall (e..g out of world, in of world)?

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Maybe we should do the same? Just kidding.

 

Know what?! I changed Error to Warning in FreeCurrentPVS in pvs.cpp and rebuilt. I was almost sure that this won't give me anything as the problem is in Doom3.exe and not in gamex86.dll (or I don't understand the DLL system...).

 

The crash is gone. The corrupted sessions are terminated more or less correctly (at least without a crash). Save/load works OK. I've finished the trapped mission from corrupted save and seen the mission completition statistics.

 

 

I know that this kind of "fix" is just running away from some stability problem (memory leak or corruption maybe). But I prefer using the gamex86.dll with this hack.

 

 

Link to comment
Share on other sites

  • 4 weeks later...

In Tears of St. Lucia, I am getting crashes loading any save game OR restarting a new game, but only when a game is already running, and not on the initial load. I'm on a fresh install of Doom 3 patched to the latest version, and I'm near the beginning of the mission (I haven't entered the church yet). I think the savegames are normal size (41.3 MB). I never got any crashes on loading games in the Training Mission.

 

"DOOM3.exe - Application Error : The instruction at "0x0a388bf5" referenced memory at "0x132fa6f0". The memory could not be "written".

 

Faulting application doom3.exe, version 1.0.0.1, faulting module gamex86.dll, version 0.0.0.0, fault address 0x0020eafe.

 

The application, C:\Program Files\Doom 3\DOOM3.exe, generated an application error The error occurred on 02/03/2010 @ 01:28:25.412 The exception generated was c0000005 at address 0A32EAFE (gamex86!GetGameAPI)"

 

I turned on all logging options and these were the last few lines in the log file:

 

[.\DarkMod\darkModLAS.cpp ( 718):DEB (LIGHT) FR: 0] LAS shut down and empty

[.\DarkMod\darkModLAS.cpp ( 721):DEB (LIGHT) FR: 0] Clearing PVS to AAS(0) mapping table ...

[.\DarkMod\darkModLAS.cpp ( 723):DEB (LIGHT) FR: 0] PVS to AAS(0) mapping table cleared

[.\game\entity.cpp (1029):DEB (FUNCTION) FR: 0] this: 0D661BCC [idEntity::~idEntity]

[.\DarkMod\sndProp.cpp ( 108):DEB (SOUND) FR: 0] Clearing sound prop gameplay object.

[.\DarkMod\sndPropLoader.cpp ( 770):DEB (SOUND) FR: 0] Clearing m_sndAreas

[.\DarkMod\sndPropLoader.cpp ( 786):DEB (SOUND) FR: 0] Clearing m_PortData with 115 portals

[.\DarkMod\sndPropLoader.cpp ( 794):DEB (SOUND) FR: 0] Destroy Areas data finished.

 

Maybe I will try the error to warning change mentioned by stgatilov as a workaround because it sounds like the same problem...

 

Edit:

Adding some additional logging info. Looks like the eax/ecx thing again...

*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Program Files\Doom 3\saintlucia\gamex86.dll - 
function: gamex86!GetGameAPI
0a32eaea 04c2 add al,0xc2
0a32eaec 0400 add al,0x0
0a32eaee cc int 3
0a32eaef cc int 3
0a32eaf0 56 push esi
0a32eaf1 8b7104 mov esi,[ecx+0x4]
0a32eaf4 85f6 test esi,esi
0a32eaf6 742b jz gamex86!GetGameAPI+0x1a9843 (0a32eb23)
0a32eaf8 8d4604 lea eax,[esi+0x4]
0a32eafb 83c9ff or ecx,0xffffffff
FAULT ->0a32eafe f00fc108 lock xadd [eax],ecx ds:0023:1342cbe4=????????
0a32eb02 751f jnz gamex86!GetGameAPI+0x1a9843 (0a32eb23)
0a32eb04 8b16 mov edx,[esi]
0a32eb06 8b4204 mov eax,[edx+0x4]
0a32eb09 8bce mov ecx,esi
0a32eb0b ffd0 call eax
0a32eb0d 8d4e08 lea ecx,[esi+0x8]
0a32eb10 83caff or edx,0xffffffff
0a32eb13 f00fc111 lock xadd [ecx],edx
0a32eb17 750a jnz gamex86!GetGameAPI+0x1a9843 (0a32eb23)
0a32eb19 8b06 mov eax,[esi]

*----> Stack Back Trace <----*
WARNING: Stack unwind information not available. Following frames may be wrong.
ChildEBP RetAddr Args to Child 
02ffea78 0a50f22c 0a180b95 00000001 0000000f gamex86!GetGameAPI+0x1a981e
0a22aa78 56097401 06782be8 04c48300 c25ec68b gamex86+0x3ef22c
082444f6 00000000 00000000 00000000 00000000 0x56097401

Edited by Cadex
Link to comment
Share on other sites

  • 1 month later...

Are these new saves, because 1.00 savegames won't work with 1.01.

 

We did mention that 1.00 saves wouldn't work after updating.

 

I think this Shumnee's case might be related to another topic I started yesterday (Crashes to desktop with TDM 1.01). There seems to be some kind of incompatibility between the old training mission and TDM 1.01. This time the savegames are not getting terribly big as they did with 1.00, but I'm getting CTD's frequently with training mission. However I've played thru/tested about a half of all TDM fan missions with the new 1.01 and only training mission seems to be apt to these crashes. Crash happens most usually when saving or loading the game but sometimes it can also happen when just moving around.

Link to comment
Share on other sites

Join the conversation

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

Guest
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.


  • Recent Status Updates

    • Petike the Taffer

      I've finally managed to log in to The Dark Mod Wiki. I'm back in the saddle and before the holidays start in full, I'll be adding a few new FM articles and doing other updates. Written in Stone is already done.
      · 0 replies
    • nbohr1more

      TDM 15th Anniversary Contest is now active! Please declare your participation: https://forums.thedarkmod.com/index.php?/topic/22413-the-dark-mod-15th-anniversary-contest-entry-thread/
       
      · 0 replies
    • JackFarmer

      @TheUnbeholden
      You cannot receive PMs. Could you please be so kind and check your mailbox if it is full (or maybe you switched off the function)?
      · 1 reply
    • OrbWeaver

      I like the new frob highlight but it would nice if it was less "flickery" while moving over objects (especially barred metal doors).
      · 4 replies
    • nbohr1more

      Please vote in the 15th Anniversary Contest Theme Poll
       
      · 0 replies
×
×
  • Create New...