Bug #12846 MySQL Query Browser access violation
Submitted: 29 Aug 2005 16:57 Modified: 27 Sep 2005 16:07
Reporter: Anders Karlsson Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Query Browser Severity:S2 (Serious)
Version:1.1.14 OS:Windows (Windows XP)
Assigned to: Mike Lischke CPU Architecture:Any

[29 Aug 2005 16:57] Anders Karlsson
Description:
In some cases I see access violation errors in MQB. You could gets those in previous versions also, but in 1.4.14 there are more of them. Reproducing these is difficult, but I have one easily reproducible case that seems to cause this all the time on my system.

How to repeat:
- Start MQB
- When connecting, choose a nonexisting database / schema.
- When prompted if you want to create a new schema, choose yes.
- When logged in to MQB choose File->New Script Tab
- In that new script tab, paste in the following code:
DELIMITER $$

DROP FUNCTION IF EXISTS `f1`$$
CREATE FUNCTION `f1`(
) RETURNS tinyint(1)
BEGIN
   RETURN 0;
END$$

DROP FUNCTION IF EXISTS `f2`$$
CREATE FUNCTION `f2`(
) RETURNS char(12)
BEGIN
   RETURN '123456';
END$$

DELIMITER ;
- Now, click on the Execute button to the right, and wait for it to finish.
- When done, click on Execute again or in the object browser on the right, do a right-click and then choose refresh.
- This work, it seems, but the display of the above two functions in the object-browser is garbled slightly (there is some CREATE FUNC.. text overwriting part of the f1() return type).
- Now, do Execute or Refresh again, you get:
"Access violation at address 1006CD50 in module 'libglib-2.0-0.dll'. Write of address 46779688" in a message box. Then you get another Message box with "Access violation at address 003969C3 in module 'libmysqlx.dll'. Write of address 00000028".
- After this, the refresh never finishes.

Logging out of MQB and then back in fixes this temporaily, but once a refresh of the object browser window is forces, the same thing happens again in the same order, i.e. first a garbled display and then an access violation.
[22 Sep 2005 0:00] [ name withheld ]
I have another simple way to get an "access violation at address 00577E10 in module MySQLQueryBrowser.exe. Read of address 00000024".

My config:
QB 1.1.14 installed on WinXP SP2 family edition.
MySQL server 4.1.11 on linux i386.

1) Connect to a database on the server.
2) In the schemata tree, on the right of QB, select a table: drag and drop it on the tab area. The command area displays:
SELECT * from "database"."table"
3) There's an error message displayed on the bottom of the tab:
"You have an error in your SQL syntax; check the manual..."
4) Click on the [{pen} edit] button at the bottom of the recordset. The error message is displayed on the status bar.
[22 Sep 2005 1:40] [ name withheld ]
As a precision to my previous comment, in fact it suffices to click the [edit] button on an empty result set.
[27 Sep 2005 16:07] Mike Lischke
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

The access violation when you try to edit an empty result set is a totatlly different matter (and already fixed as well).

Mike