heidi crashes all the time

[expired user #5298]'s profile image [expired user #5298] posted 12 years ago in General Permalink
Hi,

In the last week heidi crashes all the time.
The heidi versionn i use use is r4218 with mysql 5.1 on a windows 7 machine.
I get the error

system up time : 4 hours 39 minutes
program up time : 8 minutes 12 seconds
processors : 4x Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
physical memory : 1822/3984 MB (free/total)
free disk space : (C:) 398.40 GB
display mode : 1280x1024, 32 bit
process id : $14f8
allocated memory : 33.54 MB
executable : heidisql.exe
exec. date/time : 2012-10-29 07:02
version : 7.0.0.4218
compiled with : Delphi XE
madExcept version : 3.0m beta 1
callstack crc : $59c45084, $8a547ce1, $8a547ce1
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 59C45084 in module 'libmysql.dll'. Read of address 00000088.

thread $11f8 (TQueryThread):
59c45084 libmysql.dll
59c4099f libmysql.dll mysql_store_result
00716f83 heidisql.exe dbconnection 1541 +35 TMySQLConnection.Query
0067954d heidisql.exe helpers 2602 +37 TQueryThread.Execute
00460773 heidisql.exe madExcept HookedTThreadExecute
004a8f12 heidisql.exe Classes ThreadProc
00407530 heidisql.exe System 549 +0 ThreadWrapper
00460655 heidisql.exe madExcept CallThreadProcSafe
004606bf heidisql.exe madExcept ThreadExceptFrame
77393398 kernel32.dll BaseThreadInitThunk
>> created by main thread ($538) at:
006792fe heidisql.exe helpers 2540 +1 TQueryThread.Create

main thread ($538):
00000000 heidisql.exe madStackTrace +0 StackAddrToStr
>> stack will be calculated soon

BR,
David
ansgar's profile image ansgar posted 12 years ago Permalink
The crash happens in libmysql.dll, so: make sure you are using this file.
[expired user #5298]'s profile image [expired user #5298] posted 12 years ago Permalink
i renoved the pld dll, copied the new dll, restarted the computer and issued the query.
It crashed again

operating system : Windows 7 x64 Service Pack 1 build 7601
system up time : 4 minutes 26 seconds
program up time : 2 minutes 18 seconds
processors : 4x Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
physical memory : 2160/3984 MB (free/total)
free disk space : (C:) 398.29 GB
display mode : 1280x1024, 32 bit
process id : $f80
allocated memory : 40.96 MB
executable : heidisql.exe
exec. date/time : 2012-10-29 07:02
version : 7.0.0.4218
compiled with : Delphi XE
madExcept version : 3.0m beta 1
callstack crc : $61bb5084, $ef71e763, $ef71e763
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 61BB5084 in module 'libmysql.dll'. Read of address 00000088.

thread $17ec (TQueryThread):
61bb5084 libmysql.dll
61bb099f libmysql.dll mysql_store_result
00716f83 heidisql.exe dbconnection 1541 +35 TMySQLConnection.Query
0067954d heidisql.exe helpers 2602 +37 TQueryThread.Execute
00460773 heidisql.exe madExcept HookedTThreadExecute
004a8f12 heidisql.exe Classes ThreadProc
00407530 heidisql.exe System 549 +0 ThreadWrapper
00460655 heidisql.exe madExcept CallThreadProcSafe
004606bf heidisql.exe madExcept ThreadExceptFrame
76ec3398 kernel32.dll BaseThreadInitThunk
>> created by main thread ($1378) at:
006792fe heidisql.exe helpers 2540 +1 TQueryThread.Create

main thread ($1378):
00000000 heidisql.exe madStackTrace +0 StackAddrToStr
>> stack will be calculated soon
ansgar's profile image ansgar posted 12 years ago Permalink
The right libmysql.dll MUST be located in the same folder from where you run heidisql.exe - just to be sure, as there was a user messing around with the .exe and .dll *somewhere* on his computer and he wondered about a similar crash in libmysql.dll. Many HeidiSQL users seem to have various versions of libmysql.dll on their computer, due to having some local MySQL server or PHP installed. So, please make absolutely sure your heidisql.exe is in the same directory as the above mentioned libmysql.dll.
[expired user #5298]'s profile image [expired user #5298] posted 12 years ago Permalink
Hi,

The dll is at
C:\Program Files (x86)\HeidiSQL
It is at the sample place where heidisql.exe is.

Is this ok?

Thanks,
David
jfalch's profile image jfalch posted 12 years ago Permalink
only if you start heidisql.exe from that directory.
if you start it from another directory (e.g. desktop), it will use the first libmysql.dll found via your PATH environment variable (often in c:\Windows\System32).
[expired user #5298]'s profile image [expired user #5298] posted 12 years ago Permalink
I opened the directory ran heidisql from this directory and got again the same error after issuing the query.
I ran the same query from a remote mysql linux client (with the -h option) and got the results. They are 1233 rows with 6 columns.
Should i try yo uninstall heidisql and install again?
If yes, how do i get rid of this dll? Is it deleted automatically or will i get the same problem again after reinstalling?
jfalch's profile image jfalch posted 12 years ago Permalink
uninstalling heidisql will probably remove the libmysql.dll from the heidisql directory; you could just try - it does not take long, after all, to reinstall it.
if, however, this problm is caused by another libmysql.dll which is present on your machine, this will not be affected by the uninstall. try
a) use windows search to scan your system for fiels named libmysql.dll, and/or
b) download the which program from gnuwin32, and install it. open a console window (cmd.exe); in it, change to the program directory conatimning which.exe (with cd command), then call

which.exe libmysql.dll

this will tell you what libmysqll.dll is present on your system that is found by the standard dll search.
[expired user #5298]'s profile image [expired user #5298] posted 12 years ago Permalink
I uninstalled heidy, installed it again and it does not help.
I also scan my whole C: and i don't have such a dll in another place. What else can i check ?
jfalch's profile image jfalch posted 12 years ago Permalink
I suggest you get path editor. Run it, and check wether there are any directories in your system´s PATH that are not on C: ; if there are any, check these for other libmysql´s too.
[expired user #6429]'s profile image [expired user #6429] posted 12 years ago Permalink
Guys,

I am getting same issue..
[expired user #5298]'s profile image [expired user #5298] posted 12 years ago Permalink
I checked the path variable and i don't see another path.
Besides it C: is my only disk
jfalch's profile image jfalch posted 12 years ago Permalink
Then, I´m afraid, I do not have any more ideas.
ansgar's profile image ansgar posted 12 years ago Permalink
You said that this crash happens "all the time". But the callstack tells me you were in a query tab executing some custom query, right?
[expired user #5298]'s profile image [expired user #5298] posted 12 years ago Permalink
Yes. I was a little bit exaggerating :). I had to get the results asap and the crashing of heidi was annoying.
There is at least one query which crashes the application and it is quite consistent.
It is not a killer query.
It returns 1243 rows and 6 columns. All the values are text
ansgar's profile image ansgar posted 12 years ago Permalink
Probably you can send me CREATE code and data for that table? I would check if there is something special in it. Of course only if it does not contain sensible data.
[expired user #5298]'s profile image [expired user #5298] posted 12 years ago Permalink
Hi,

I unfortunately cannot provide the data and create code for this script.
It would violate the companies privacy code.
I just can say that i use heidisql for at least 3 years and i queried tables of this type long ago and never had problems with it.
I could maybe run the query on a heidisql where a more verbose logging is available and then send you the more detailed query stack. Is this ok?

Thanks,
David
[expired user #5298]'s profile image [expired user #5298] posted 12 years ago Permalink
Another thought:
Would it maybe be helpful if i try to remove columns from the select statement and see if for a minimal set of columns it does not crash?
So i would know that an addition of a column made it crash.
We could then look for special characters which could make problems.
I know that in part of the data i have ctrl ^m (returns in excel)
Would this be helpful?
ansgar's profile image ansgar posted 12 years ago Permalink
Yes, of course, if that way you can track down the error.

Getting more debug output is doable via Tools > Preferences > Logging. But that won't help, as the callstack is already very exact: the crash is somewhere in mysql_store_result(), which is already outside of the HeidiSQL code, in libmysql. What I'm not quite sure about is if that's fixable in HeidiSQL. As you say you don't have any problems in other clients, right? Means, there is some quirky thing done in HeidiSQL which e.g. calls mysql_store_result() when another result is not yet fetched. On the other side, that would result in a "Commands out of sync". I'm a bit stuck here, if I don't have the sample data.

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