Bug #33589 Crash when clicking on a foreign key when its referenced table has been deleted
Submitted: 30 Dec 2007 14:21 Modified: 8 Jan 2008 23:17
Reporter: Patric Müller Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Workbench Severity:S1 (Critical)
Version:5.0.11 Beta OS:Windows (XP)
Assigned to: Alfredo Kojima CPU Architecture:Any

[30 Dec 2007 14:21] Patric Müller
Description:
This bug prevents of working with mysql workbench when using foreign keys.

I cannot reuse my saved model, because I am not able to change the faulty foreign key, because it then crashes everytime.

The exported sql is also errornous.

How to repeat:
Create table 1 with one column 

Create table 2 with one column

Click at table 1 details, foreign key tab. create a new foreign key, referencing the second table primary key.

delete table 2.

click at table 1 details, foreign key tab, click at the foreign key => CRASH.
[30 Dec 2007 14:22] Patric Müller
Example workbench file, click on table 1, foreign key tab, then click on the specified foreign key

Attachment: foreign_key_crash.mwb (application/octet-stream, text), 3.92 KiB.

[30 Dec 2007 14:27] Patric Müller
Exception stacktrace:

************** Ausnahmetext **************
System.Runtime.InteropServices.SEHException: Eine externe Komponente hat eine Ausnahme ausgelöst.
   bei MySQL.Grt.ListModel.get_field(NodeId node, Int32 column, String& value)
   bei MySQL.GUI.Workbench.Plugins.DbMysqlTableFkColumnListModel.ValueNeeded(Object sender, NodeControlValueEventArgs e)
   bei Aga.Controls.Tree.NodeControls.BindableControl.OnValueNeeded(NodeControlValueEventArgs args)
   bei Aga.Controls.Tree.NodeControls.BindableControl.GetValue(TreeNodeAdv node)
   bei Aga.Controls.Tree.NodeControls.BaseTextControl.GetLabel(TreeNodeAdv node)
   bei Aga.Controls.Tree.NodeControls.BaseTextControl.GetLabelSize(TreeNodeAdv node, DrawContext context)
   bei Aga.Controls.Tree.NodeControls.BaseTextControl.MeasureSize(TreeNodeAdv node, DrawContext context)
   bei Aga.Controls.Tree.NodeControls.NodeControl.GetActualSize(TreeNodeAdv node, DrawContext context)
   bei Aga.Controls.Tree.TreeViewAdv.<GetNodeControls>d__e.MoveNext()
   bei Aga.Controls.Tree.TreeViewAdv.<GetNodeControls>d__8.MoveNext()
   bei Aga.Controls.Tree.TreeViewAdv.DrawNode(TreeNodeAdv node, DrawContext context)
   bei Aga.Controls.Tree.TreeViewAdv.DrawRow(PaintEventArgs e, DrawContext& context, Int32 row, Rectangle rowRect)
   bei Aga.Controls.Tree.TreeViewAdv.OnPaint(PaintEventArgs e)
   bei System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
   bei System.Windows.Forms.Control.WmPaint(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
[30 Dec 2007 14:33] Patric Müller
Improved Synopsis of this bug.
[30 Dec 2007 14:49] Patric Müller
Additional note reproducing the bug:

After the deletion of the second table it is required to save the model, then reopen it and click on the foreign key to crash mysql workbench.
[30 Dec 2007 15:50] Patric Müller
The crash also occurs if only the referenced column is deleted (instead of the whole table)
[30 Dec 2007 17:30] Valeriy Kravchuk
Thank you for a bug report. Verified just as described.
[8 Jan 2008 23:17] Alfredo Kojima
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 bug fix. More information about accessing the source trees is available at

    http://dev.mysql.com/doc/en/installing-source.html