TMessageForm Destroyed Twice - bugreport

John Bell's profile image John Bell posted 10 years ago in HeidiSQL portable Permalink
See bug report below. Running on VMWare. Open Heidisql and then close and get the error (also get error when i actually do something before closing).
date/time : 2013-11-16, 08:52:21, 698ms
computer name : JCBWEBSERVER
user name : johnbell
registered owner : Windows User
operating system : Windows 2008 R2 x64 Service Pack 1 build 7601
system language : English
system up time : 4 minutes 44 seconds
program up time : 2 minutes 34 seconds
processors : 2x Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
physical memory : 6817/8192 MB (free/total)
free disk space : (C:) 29.23 GB (D:) 18.48 GB
display mode : 1564x868, 32 bit
process id : $854
allocated memory : 37.81 MB
executable : heidisql.exe
exec. date/time : 2013-10-03 07:35
version : 8.1.0.4545
compiled with : Delphi XE
madExcept version : 3.0m beta 1
callstack crc : $4b6e23e9, $70c70c75, $70c70c75
exception number : 1
exception class : EAssertionFailed
exception message : Component already destroyed: ClassName: TMessageForm (C:\Builds\TP\rtl\common\Classes.pas, line 12219).

main thread ($858):
004aa62c heidisql.exe Classes TComponent.FreeNotification
0057128f heidisql.exe Forms TCustomForm.CreateParams
004e9790 heidisql.exe Controls TControl.WndProc
004ecbee heidisql.exe Controls TWinControl.CreateWnd
0056d5c1 heidisql.exe Forms TScrollingWinControl.CreateWnd
005715c6 heidisql.exe Forms TCustomForm.CreateWnd
004ed13e heidisql.exe Controls TWinControl.CreateHandle
004f0e14 heidisql.exe Controls TWinControl.HandleNeeded
004e64a2 heidisql.exe Controls TControlCanvas.CreateHandle
004cb491 heidisql.exe Graphics TCanvas.RequiredState
004cb3a5 heidisql.exe Graphics TCanvas.GetHandle
0055e71f heidisql.exe Dialogs GetAveCharSize
0055efa2 heidisql.exe Dialogs CreateMessageDialog
0055f4e5 heidisql.exe Dialogs CreateMessageDialog
0055f5ea heidisql.exe Dialogs MessageDlgPosHelp
00686757 heidisql.exe helpers 2547 +84 MessageDialog
00686160 heidisql.exe helpers 2431 +1 MessageDialog
00686b6a heidisql.exe helpers 2556 +1 ErrorDialog
0068d051 heidisql.exe helpers 3419 +33 TAppSettings.Destroy
7711012e ntdll.dll KiUserExceptionDispatcher
00406013 heidisql.exe System 549 +0 @ClassCreate
00405ab0 heidisql.exe System 549 +0 TObject.Free
007ed264 heidisql.exe Main 1369 +54 TMainForm.FormDestroy
0056e70d heidisql.exe Forms TCustomForm.DoDestroy
0056e57e heidisql.exe Forms TCustomForm.Destroy
004aa93b heidisql.exe Classes TComponent.DestroyComponents
0056c37d heidisql.exe Forms DoneApplication
00473cba heidisql.exe SysUtils DoExitProc
004073dd heidisql.exe System 549 +0 @Halt0
00823c39 heidisql.exe heidisql 78 +26 initialization
76a93368 kernel32.dll BaseThreadInitThunk

ansgar's profile image ansgar posted 10 years ago Permalink
Is that some home brown build or using the official build/release?
John Bell's profile image John Bell posted 10 years ago Permalink
it is the release build downloaded from your site.
ansgar's profile image ansgar posted 10 years ago Permalink
I wondered as the path in the exception message neither matches my local filesystem nor the one on my build server. And noone else ever has reported that. And the components in your callstack are quite old.

Is that reproducible for you?

Probably a Windows 2008 related issue. Who knows.
John Bell's profile image John Bell posted 10 years ago Permalink
as a test, i just downloaded the installer and it works fine; just seems a problem with the portable version.
John Bell's profile image John Bell posted 10 years ago Permalink
here are all the files in the portable version
Directory of X:\MySQLData\HeidiSQL

11/10/2013 11:16 AM <DIR> .
11/10/2013 11:16 AM <DIR> ..
05/03/2006 08:58 PM 18,330 gpl.txt
10/03/2013 07:35 AM 7,032,887 heidisql.exe
01/28/2013 12:48 PM 2,271,792 libmysql.dll
02/12/2012 02:15 PM 1,905 license.txt
08/03/2013 09:35 AM <DIR> Plugins
11/10/2013 11:06 AM 11,855 portable_settings.txt
09/19/2013 06:16 AM 5,004 readme.txt
6 File(s) 9,341,773 bytes

Directory of X:\MySQLData\HeidiSQL\Plugins

08/03/2013 09:35 AM <DIR> .
08/03/2013 09:35 AM <DIR> ..
12/06/2011 02:17 PM 123,720 dialog.dll
1 File(s) 123,720 bytes
ansgar's profile image ansgar posted 10 years ago Permalink
More interesting than the file listing would be the contents of your portable_settings.txt. But that contains your encrypted session password, so do not post it here, unless you blanked out these in that file.

However, now I know you're using the portable, I can retry to reproduce that issue with my own settings file.
Code modification/commit from ansgar.becker, 10 years ago, revision 8.1.0.4640
Prefer ShowMessage over ErrorDialog in AppSettings.Destroy, to work around an access violation when catching a yet unknown access violation. See http://www.heidisql.com/forum.php?t=14001
ansgar's profile image ansgar posted 10 years ago Permalink
Try r4640 - that does not crash here at least with the portable_settings.txt you just sent me.

Please login to leave a reply, or register at first.