Crash on query

[expired user #7182]'s profile image [expired user #7182] posted 11 years ago in General Permalink
Firstly, thanks for the great tool - one of the very few free tools that have moved me to contribute :)

Unfortunately, I just had my first crash. It repeated a couple of times - although it seem s intermittent which makes me worry that it might be on the database server end rather than HeidiSQL. The query was like this:

select table1.field1-table1.field2 as diff, table1.* from table1 where table1.field1-table1.field2 < -0.01

table1 has about 370,000 rows and field1 and field2 are floats. The query works OK sometimes and returns a few thousand rows (about 2000).

The report generated is as follows. Any information on what is causing it / what I should avoid gratefully recieved. Sorry it's an annoying intermittent issue.

date/time : 2013-07-30, 11:40:07, 404ms
computer name : IESD-044
user name : jsnape <admin>
registered owner : admin
operating system : Windows XP Service Pack 3 build 2600
system language : English
system up time : 1 day 2 hours
program up time : 22 hours 24 minutes
processors : 2x Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
physical memory : 479/3070 MB (free/total)
free disk space : (C:) 28.81 GB
display mode : 1920x1080, 32 bit
process id : $270
allocated memory : 60.50 MB
executable : heidisql.exe
exec. date/time : 2013-05-19 07:03
version : 8.0.0.4396
compiled with : Delphi XE
madExcept version : 3.0m beta 1
callstack crc : $9650eebe, $40131756, $40131756
exception number : 1
exception class : ERegistryException
exception message : Failed to set data for '1'.

main thread ($21f8):
004c0e03 heidisql.exe Registry TRegistry.PutData
004c08f2 heidisql.exe Registry TRegistry.WriteString
0068acad heidisql.exe helpers 3626 +2 TAppSettings.WriteString
007e93ca heidisql.exe Main 2477 +124 TMainForm.FinishedQueryExecution
00684ed1 heidisql.exe helpers 2810 +0 TQueryThread.BatchFinished
004a905f heidisql.exe Classes CheckSynchronize
005757ae heidisql.exe Forms TApplication.WndProc
004ab958 heidisql.exe Classes StdWndProc
7e418a0b USER32.dll DispatchMessageW
00575ffb heidisql.exe Forms TApplication.ProcessMessage
0057603e heidisql.exe Forms TApplication.HandleMessage
00576369 heidisql.exe Forms TApplication.Run
00819be2 heidisql.exe heidisql 74 +22 initialization


Code modification/commit from ansgar.becker, 11 years ago, revision 8.0.0.4475
Handle ERegistryException's in TMainForm.FinishedQueryExecution by writing them to the SQL log. These seem to happen sporadically in a broken registry, or due to going from a query thread to the main thread again. Guess there is no real fix to that issue. See http://www.heidisql.com/forum.php?t=13088
ansgar's profile image ansgar posted 11 years ago Permalink
Fixed in r4475.

These are registry errors which happen when updating the query history, which is more cosmetic. I must guess their real cause. Most probably they happen due to going from a query thread into the main thread again. Writing to the Windows registry is very non-thread-safe. My solution for now is to display them in the SQL log panel instead of raising the exception window. This way you can still see them, but they don't annoy more than they should.
[expired user #7182]'s profile image [expired user #7182] posted 11 years ago Permalink
Thanks for the prompt reply. That makes sense and explains the intermittency. I shall upgrade to 4475 (still on a rather old version).

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