Game Development Community

T3D 1.1 Beta 2 - Maximizing a window after executed with -connect causes a crash - RESOLVED

by Chris · in Torque 3D Professional · 10/08/2010 (11:51 pm) · 8 replies

Build : 1.1B2 Debug&Release

Platform: Windows 7 x64

Targets:

Issue:
Maximizing a window before the -connect has started loading the level causes a crash

This has been a long standing bug and one of my testers had it happen to him a few times in a row launching our test client and maximizing it, I've lived with it just waiting to hit maximize.

Steps to replicate:
Start a -dedicated server
Start a command line client : Client_Debug.exe -connect hostname:port
When the window opens maximize it before the level starts to load, when the screen is grey

Window focus status changed: focus: 1
Got Connect challenge Response
Sending Connect Request
Win32Window::WindowProc - resetting device due to window size change.
GFXPCD3D9Device::reset - depthstencil 7e7a420 has 2 ref's
--- Resetting D3D Device ---
Connection established 15156
Mapping string: ServerMessage to index: 0
Mapping string: MsgConnectionError to index: 1
onServerMessage: 
Mapping string: MsgLoadInfo to index: 2
onServerMessage: 
Mapping string: MsgLoadInfoDone to index: 3
onServerMessage: 
Mapping string: MissionStartPhase1 to index: 4
Loading GUI Mission : Goldspine Hills
*** New Mission: levels/Goldspine_Hills.mis
*** Phase 1: Download Datablocks & Targets
<<<< client cache CRC: 962462900 >>>>
<<<< comparing CRC codes: s:-2096430930 c:962462900 >>>>
<<<< cache CRC codes differ, datablocks will be transmitted and cached. >>>> -2096430930
First-chance exception at 0x10e6ebbc (Client_DEBUG.dll) in Client_DEBUG.exe: 0xC0000005: Access violation reading location 0xcdcdcdcd.
Unhandled exception at 0x10e6ebbc (Client_DEBUG.dll) in Client_DEBUG.exe: 0xC0000005: Access violation reading location 0xcdcdcdcd.

Leads to the following crash
>	Client_DEBUG.dll!FontRenderBatcher::queueChar(unsigned short c=111, int & currentX=78, GFXVertexColor & currentColor={...})  Line 183 + 0x3 bytes	C++
 	Client_DEBUG.dll!GFXDrawUtil::drawTextN(GFont * font=0x0c9c4490, const Point2I & ptDraw={...}, const unsigned short * in_string=0x03230040, unsigned int n=16, const ColorI * colorTable=0x0018c3ac, const unsigned int maxColorIndex=9, float rot=0.00000000)  Line 261	C++
 	Client_DEBUG.dll!GFXDrawUtil::drawTextN(GFont * font=0x0c9c4490, const Point2I & ptDraw={...}, const char * in_string=0x0b62ec3b, unsigned int n=16, const ColorI * colorTable=0x0018c3ac, const unsigned int maxColorIndex=9, float rot=0.00000000)  Line 133 + 0x2c bytes	C++
 	Client_DEBUG.dll!GFXDrawUtil::drawText(GFont * font=0x0c9c4490, const Point2I & ptDraw={...}, const char * in_string=0x0b62ec3b, const ColorI * colorTable=0x0018c3ac, const unsigned int maxColorIndex=9, float rot=0.00000000)  Line 109	C++
 	Client_DEBUG.dll!GuiLoading::onRender(Point2I offset={...}, const RectI & updateRect={...})  Line 71	C++
 	Client_DEBUG.dll!GuiControl::renderChildControls(Point2I offset={...}, const RectI & updateRect={...})  Line 568	C++
 	Client_DEBUG.dll!GuiChunkedBitmapCtrl::onRender(Point2I offset={...}, const RectI & updateRect={...})  Line 184	C++
 	Client_DEBUG.dll!GuiCanvas::renderFrame(bool preRenderOnly=false, bool bufferSwap=true)  Line 1778	C++
 	Client_DEBUG.dll!GuiCanvas::handlePaintEvent(unsigned int did=0)  Line 316	C++
 	Client_DEBUG.dll!fastdelegate::FastDelegate1<unsigned int,void>::operator()(unsigned int p1=0)  Line 990 + 0x1a bytes	C++
 	Client_DEBUG.dll!Signal<void __cdecl(unsigned int)>::trigger(unsigned int a=0)  Line 377	C++
 	Client_DEBUG.dll!Journal::Call<Signal<void __cdecl(unsigned int)>,unsigned int>(Signal<void __cdecl(unsigned int)> * obj=0x0464c258, void (unsigned int)* method=0x1090a826, unsigned int a=0)  Line 542 + 0xa8 bytes	C++
 	Client_DEBUG.dll!JournaledSignal<void __cdecl(unsigned int)>::trigger(unsigned int a=0)  Line 64 + 0x12 bytes	C++
 	Client_DEBUG.dll!GuiCanvas::paint()  Line 1585	C++
 	Client_DEBUG.dll!fastdelegate::FastDelegate0<void>::operator()()  Line 905 + 0x16 bytes	C++
 	Client_DEBUG.dll!Signal<void __cdecl(void)>::trigger()  Line 362	C++
 	Client_DEBUG.dll!Process::processEvents()  Line 78	C++
 	Client_DEBUG.dll!StandardMainLoop::doMainLoop()  Line 569 + 0x5 bytes	C++
 	Client_DEBUG.dll!torque_enginetick()  Line 103 + 0x5 bytes	C++
 	Client_DEBUG.dll!TorqueMain(int argc=3, const char * * argv=0x02d7a950)  Line 377 + 0x5 bytes	C++
 	Client_DEBUG.dll!torque_winmain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, char * lpszCmdLine=0x005627de, HINSTANCE__ * __formal=0x00000000)  Line 434 + 0x17 bytes	C++
 	Client_DEBUG.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpszCmdLine=0x005627de, int nCommandShow=10)  Line 47 + 0x16 bytes	C++
 	Client_DEBUG.exe!__tmainCRTStartup()  Line 263 + 0x2c bytes	C
 	Client_DEBUG.exe!WinMainCRTStartup()  Line 182	C
 	kernel32.dll!75203677() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	ntdll.dll!77029d42() 	
 	ntdll.dll!77029d15()

#1
10/11/2010 (5:48 pm)
Can QA log this?
#2
10/11/2010 (6:17 pm)
Is this meant for beta 2? I just want to make sure it will be logged and verified correctly.
#3
10/11/2010 (6:17 pm)
It is broken on Beta2 and Beta3.

Easy to replicate too
#4
10/11/2010 (6:21 pm)
thanks!
#5
10/11/2010 (6:24 pm)
Logged by FS-QA Intern: TQA-1174
#6
11/08/2010 (11:48 pm)
@Chris
Did you encounter this happening with a clean stock Beta 3? I could not reproduce this in Beta 3.
#7
04/24/2011 (6:14 pm)
Since we were never able to reproduce the issue last year against the version the issue was reported against or against the current codebase and there's been no new info from the OP on it, I'm going to mark this as resolved.
#8
04/26/2011 (12:43 am)
IIRC, there was a commit which fixed this issue right before the release of Beta 3.