Source Code Project Mantis - FSSCP
View Issue Details
0002183FSSCPPlatform-Engine interactionpublic2010-04-16 02:072010-05-19 00:27
Assigned Toiss_mneur 
PlatformOSOS Version
Product Version3.6.12 RC2 
Target VersionFixed in Version3.6.12 
Summary0002183: Assertion from dbgheap.cpp line 1322
DescriptionWhile hunting the bug detailed in Mantis 2182, we ran into this, using the same mission.

Basically, when quitting the mission (by jumping out, or manually quitting), this Assertion happens.
Additional InformationCall Stack:

> fs2_open_3_6_13d_INF_SSE2.exe!_free_dbg_nolock(void * pUserData=0x0f153d28, int nBlockUse=1) Line 1322 + 0x30 bytes C++
     fs2_open_3_6_13d_INF_SSE2.exe!_free_dbg(void * pUserData=0x0f153d28, int nBlockUse=1) Line 1265 + 0xd bytes C++
     fs2_open_3_6_13d_INF_SSE2.exe!_vm_free(void * ptr=0x0f153d28, char * filename=0x00ea7150, int line=571) Line 1757 + 0xb bytes C++
     fs2_open_3_6_13d_INF_SSE2.exe!training_mission_shutdown() Line 571 + 0x20 bytes C++
     fs2_open_3_6_13d_INF_SSE2.exe!message_mission_shutdown() Line 604 C++
     fs2_open_3_6_13d_INF_SSE2.exe!game_level_close() Line 980 C++
     fs2_open_3_6_13d_INF_SSE2.exe!freespace_stop_mission() Line 1171 C++
     fs2_open_3_6_13d_INF_SSE2.exe!game_leave_state(int old_state=2, int new_state=1) Line 6140 C++
     fs2_open_3_6_13d_INF_SSE2.exe!gameseq_set_state(int new_state=1, int override=0) Line 275 + 0x19 bytes C++
     fs2_open_3_6_13d_INF_SSE2.exe!game_process_event(int current_state=2, int event=4) Line 5637 + 0x9 bytes C++
     fs2_open_3_6_13d_INF_SSE2.exe!gameseq_process_events() Line 395 + 0x19 bytes C++
     fs2_open_3_6_13d_INF_SSE2.exe!game_main(char * cmdline=0x02993eb7) Line 7530 + 0x5 bytes C++
     fs2_open_3_6_13d_INF_SSE2.exe!WinMain(HINSTANCE__ * hInst=0x00400000, HINSTANCE__ * hPrev=0x00000000, char * szCmdLine=0x02993eb7, int nCmdShow=10) Line 7610 + 0x9 bytes C++
     fs2_open_3_6_13d_INF_SSE2.exe!__tmainCRTStartup() Line 275 + 0x2c bytes C
     fs2_open_3_6_13d_INF_SSE2.exe!WinMainCRTStartup() Line 189 C
     [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
TagsNo tags attached.
Attached Filespatch 2183_fix.patch (1,931) 2010-04-16 14:19
? crashtest2.fs2 (22,370) 2010-05-15 22:50

2010-04-18 23:45   
Before I go over this, I want to catch Iss_Mneur on IRC to ask a few things.
2010-04-19 00:42   
As requested by Goober5000, the mission that is attached to Bug 2182 will cause this bug to manifest at anytime after the camera jumps to third person. Doing anything that reloads the mission will cause this bug to manifest.

2010-05-08 00:34   
Unless I'm missing something this patch was never added to SVN. Please *do not* resolve-fix bugs until they are fixed in SVN first.
2010-05-08 00:51   
Yes, I am waiting for goober5000 to review the code. I have sent goober5000 a PM.
2010-05-15 18:52   
I tested the mission, and my previous commit had fixed the issue. So I'm marking this fixed.
2010-05-15 22:44   
Can not confirm this issue as fixed. The same mission, if left to run for a few minutes (without time compression or anything) before warpout, will cause a crash. Not the one initially reported, but an Int3() from missiontraining.cpp line 842 instead. Again, IssMneur's attached patch fixes the issue, so that one should be committed to both trunk and the 3.6.12 branch.
2010-05-15 22:55   
I also can confirm the bug has not been fixed in either trunk nor the 3.6.12 branch.

The bug in the original report is triggered from the escape menu, if you chose restart or quit. The Int3() is triggered when jumping out. Also, bug is unaffected by time compression. Also, bug can be triggered instantly after the camera jumps back (that is, you are back in the cockpit).

For you convenience, I have attached the mission that does not trigger the unrelated sun-bitmap assert. Like the other mission, it does require blueplanet.
2010-05-19 00:27   
Okay, it's fixed now for real, in revision 6119-6120. Crediting Iss_Mneur because he figured out the underlying cause.

Issue History
2010-04-16 02:07The_ENew Issue
2010-04-16 14:19iss_mneurFile Added: 2183_fix.patch
2010-04-18 23:45Goober5000Note Added: 0011890
2010-04-18 23:45Goober5000Assigned To => iss_mneur
2010-04-18 23:45Goober5000Statusnew => assigned
2010-04-19 00:42iss_mneurNote Added: 0011893
2010-04-19 00:42iss_mneurNote Edited: 0011893
2010-05-07 23:17The_EStatusassigned => resolved
2010-05-07 23:17The_EResolutionopen => fixed
2010-05-08 00:34taylorNote Added: 0011940
2010-05-08 00:34taylorStatusresolved => assigned
2010-05-08 00:34taylorResolutionfixed => open
2010-05-08 00:51iss_mneurNote Added: 0011942
2010-05-15 18:52Goober5000Note Added: 0011964
2010-05-15 18:52Goober5000Assigned Toiss_mneur => Goober5000
2010-05-15 18:52Goober5000Statusassigned => resolved
2010-05-15 18:52Goober5000Resolutionopen => fixed
2010-05-15 18:52Goober5000Fixed in Version => 3.6.12
2010-05-15 22:44The_ENote Added: 0011968
2010-05-15 22:44The_EStatusresolved => feedback
2010-05-15 22:44The_EResolutionfixed => reopened
2010-05-15 22:50iss_mneurFile Added: crashtest2.fs2
2010-05-15 22:55iss_mneurNote Added: 0011969
2010-05-19 00:27Goober5000Note Added: 0011972
2010-05-19 00:27Goober5000Assigned ToGoober5000 => iss_mneur
2010-05-19 00:27Goober5000Statusfeedback => resolved
2010-05-19 00:27Goober5000Resolutionreopened => fixed