FS#3707 - [Windows] Game freezes when aborting map generation

Attached to Project: OpenTTD
Opened by Brumi (Brumi) - Friday, 19 March 2010, 15:40 GMT
Last edited by Thijs Marinussen (Yexo) - Friday, 17 September 2010, 16:07 GMT
Type Bug
Category Core
Status Closed
Assigned To No-one
Operating System Windows
Severity Very Low
Priority Normal
Reported Version 1.0.0-RC3
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


If I try to generate a 2048x2048 map, and then abort the generation, the game becomes irresponsive. The issue is present in trunk as well.
I'm using Windows XP-SP3.
This task depends upon

Closed by  Thijs Marinussen (Yexo)
Friday, 17 September 2010, 16:07 GMT
Reason for closing:  Fixed
Additional comments about closing:  In r20822
Comment by Remko Bijker (Rubidium) - Friday, 19 March 2010, 15:53 GMT
Does it reliably hang on Windows, i.e. every time? Does it hang with all game settings (especially NewGRFs and AIs)?

I can't reproduce it on my Linux installation.
Comment by Brumi (Brumi) - Friday, 19 March 2010, 16:40 GMT
I tried changing a few settings, and it always hung for me. I tried with and without NewGRFs, without AIs, original and TerraGenesis mapgenerator, all 4 climates, etc. Sometimes it didn't freeze when I managed to stop it in the 'landscape generation' phase, but it froze when I tried to start a new game after that, even before aborting the generation.
Comment by Thijs Marinussen (Yexo) - Friday, 19 March 2010, 18:32 GMT
Main thread:
ntdll.dll!_ZwWaitForSingleObject@12() + 0xc bytes
ntdll.dll!_RtlpWaitForCriticalSection@4() + 0x8c bytes
ntdll.dll!_RtlEnterCriticalSection@4() + 0x46 bytes
> openttd.exe!ThreadMutex_Win32::BeginCritical() Line 127 + 0xf bytes C++
openttd.exe!DrawDirtyBlocks() Line 1457 + 0x14 bytes C++
openttd.exe!UpdateWindows() Line 2293 C++
openttd.exe!VideoDriver_Win32::MainLoop() Line 896 C++
openttd.exe!ttd_main(int argc=2, char * * argv=0x0013fe00) Line 755 + 0x14 bytes C++
openttd.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00161f1d, int nCmdShow=1) Line 430 C++
openttd.exe!__tmainCRTStartup() Line 263 + 0x2c bytes C
openttd.exe!WinMainCRTStartup() Line 182 C
kernel32.dll!_BaseProcessStart@4() + 0x23 bytes
Comment by Kenn Booth (Smoovious) - Sunday, 15 August 2010, 14:43 GMT
I have it freeze also. See closed  FS#4034  for the details.

-- Smoovious