Bug #76842 Crash when opening a cell in the editor
Submitted: 27 Apr 2015 4:25 Modified: 10 Sep 2015 13:06
Reporter: Emanuel Dulan Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Workbench: SQL Editor Severity:S1 (Critical)
Version:6.3.4 OS:Windows (Microsoft Windows 7 Professional Service Pack 1)
Assigned to: CPU Architecture:Any
Tags: WBBugReporter

[27 Apr 2015 4:25] Emanuel Dulan
Description:
Trying to open a cell's content in the editor causes the tool to crash.

Simple clicking in a cell to edit it works ok.

How to repeat:
1) Run in the sql editor "SELECT * FROM table";
2) Right click on a cell and "Open in editor";

For me this causes a crash every time.
[27 Apr 2015 11:10] MySQL Verification Team
Thank you for the bug report. I couldn't repeat on Windows 8.1 and Windows 7 using the Sakila sample database. Are you able to provide the create table statement for a table you are able to repeat, would be nice you provide 2 inserts data too. Thanks.
[27 Apr 2015 13:08] Emanuel Dulan
CREATE TABLE `test_table` (
  `idtest_table` INT NOT NULL AUTO_INCREMENT,
  `test_tablecol` VARCHAR(45) NULL,
  PRIMARY KEY (`idtest_table`));

INSERT INTO `test_table` (`test_tablecol`) VALUES ('test1');
INSERT INTO `test_table` (`test_tablecol`) VALUES ('test2');

I can reproduce it on this data as well... any debug mode which might help you get a better look into this ?
[27 Apr 2015 21:20] Emanuel Dulan
I managed to start the Workbench with debug3 command line option and I got the following stacktrace in the command line:

c:\Program Files\MySQL\MySQL Workbench 6.3 CE>MySQLWorkbench.exe -log-level=debug3

c:\Program Files\MySQL\MySQL Workbench 6.3 CE>Logger set to level 'debug3'. '0111111'

Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is co
rrupt.
   at boost.function0<void>.()(function0<void>* )
   at boost.signals2.detail.slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type>,std::_List_iterato
r<std::_List_val<std::_List_simple_types<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_
group,boost::optional<int> >,boost::signals2::slot<void __cdecl(void),boost::function<void __cdecl(void)> >,boost::signals2::mutex> > > > >,boost::sig
nals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional<int> >,boost::signals2::slot<void __cdecl(void)
,boost::function<void __cdecl(void)> >,boost::signals2::mutex> >.dereference(slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost
::signals2::detail::void_type>\,std::_List_iterator<std::_List_val<std::_List_simple_types<boost::shared_ptr<boost::signals2::detail::connection_body<
std::pair<enum boost::signals2::detail::slot_meta_group\,boost::optional<int> >\,boost::signals2::slot<void __cdecl(void)\,boost::function<void __cdec
l(void)> >\,boost::signals2::mutex> > > > >\,boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group\,boost::
optional<int> >\,boost::signals2::slot<void __cdecl(void)\,boost::function<void __cdecl(void)> >\,boost::signals2::mutex> >* )
   at boost.signals2.optional_last_value<void>.operator()<class boost::signals2::detail::slot_call_iterator_t<class boost::signals2::detail::variadic_
slot_invoker<struct boost::signals2::detail::void_type>,class std::_List_iterator<class std::_List_val<struct std::_List_simple_types<class boost::sha
red_ptr<class boost::signals2::detail::connection_body<struct std::pair<enum boost::signals2::detail::slot_meta_group,class boost::optional<int> >,cla
ss boost::signals2::slot<void __cdecl(void),class boost::function<void __cdecl(void)> >,class boost::signals2::mutex> > > > >,class boost::signals2::d
etail::connection_body<struct std::pair<enum boost::signals2::detail::slot_meta_group,class boost::optional<int> >,class boost::signals2::slot<void __
cdecl(void),class boost::function<void __cdecl(void)> >,class boost::signals2::mutex> > >(optional_last_value<void>* , slot_call_iterator_t<boost::sig
nals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type>\,std::_List_iterator<std::_List_val<std::_List_simple_types<boost::shared_ptr
<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group\,boost::optional<int> >\,boost::signals2::slot<void
__cdecl(void)\,boost::function<void __cdecl(void)> >\,boost::signals2::mutex> > > > >\,boost::signals2::detail::connection_body<std::pair<enum boost::
signals2::detail::slot_meta_group\,boost::optional<int> >\,boost::signals2::slot<void __cdecl(void)\,boost::function<void __cdecl(void)> >\,boost::sig
nals2::mutex> > first, slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type>\,std::_List_iterator<st
d::_List_val<std::_List_simple_types<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_grou
p\,boost::optional<int> >\,boost::signals2::slot<void __cdecl(void)\,boost::function<void __cdecl(void)> >\,boost::signals2::mutex> > > > >\,boost::si
gnals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group\,boost::optional<int> >\,boost::signals2::slot<void __cdecl(vo
id)\,boost::function<void __cdecl(void)> >\,boost::signals2::mutex> > last)
   at boost.signals2.detail.signal_impl<void __cdecl(void),boost::signals2::optional_last_value<void>,int,std::less<int>,boost::function<void __cdecl(
void)>,boost::function<void __cdecl(boost::signals2::connection const &)>,boost::signals2::mutex>.()(signal_impl<void __cdecl(void)\,boost::signals2::
optional_last_value<void>\,int\,std::less<int>\,boost::function<void __cdecl(void)>\,boost::function<void __cdecl(boost::signals2::connection const \&
)>\,boost::signals2::mutex>* )
   at MySQL.Forms.TabViewWrapper.set_active_tab(TabView* backend, Int32 index)
   at mforms.MenuItem.callback(MenuItem* )
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwCompon
entID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at MySQL.GUI.Workbench.Program.Main(String[] Args)
[28 Apr 2015 19:54] Emanuel Dulan
while there is a workaround to view the value, there is no workaround to insert a value that contains characters like ' and \n which need to be escaped.
[20 May 2015 11:25] MySQL Verification Team
Editor Dialog

Attachment: editor.png (image/png, text), 73.47 KiB.

[20 May 2015 11:26] MySQL Verification Team
I still can't repeat (see attached screen-shot) any idea of additional action or some preference setting to make it repeatable?. Thanks.
[20 May 2015 11:32] Emanuel Dulan
I don't know what the cause it is, just that to me it happens all the time, I was hoping the stacktrace would at least point you guys toward something that might cause it... like installed VC++ redistributable... or any other requirement workbench might have...
Reinstalling it didn't solve the problem for me... and I dunno how to clean install it... as in uninstall any requirements and install them as needed by workbench.
[24 Jun 2015 16:08] MySQL Verification Team
Please try new version 6.3.4. Thanks.
[25 Jul 2015 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[25 Jul 2015 6:14] Emanuel Dulan
Updating Workbench to 6.3.4 did not fix the bug for me.
[25 Aug 2015 9:36] IGG t
I have the same problem since upgrading. 

I currently have Workbench 6.3.4, on Windows 7 64 bit.

At first I thought it was just BLOB fields (as they are the only ones I open in the external viewer). But I now see it is all fields. 

I've tried various field types in various databases running on both Windows and Linux Servers, and without fail, it crashes when trying to open a cell in the external viewer. This is now affecting me on a daily basis.
[8 Sep 2015 23:23] MySQL Verification Team
Crash

Attachment: editor_viewer.png (image/png, text), 467.83 KiB.

[8 Sep 2015 23:26] MySQL Verification Team
Create the below table then open the text column in viewer editor:

Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.26-log MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use test
Database changed
mysql> create table b (id int not null auto_increment primary key, ct text);
Query OK, 0 rows affected (0.27 sec)

mysql> insert into b (ct) values ("best option\\should be\\\a better text\\n");
Query OK, 1 row affected (0.06 sec)

mysql> insert into b (ct) values ("best option\\should be\\\a better text\\n");
Query OK, 1 row affected (0.02 sec)

mysql> insert into b (ct) values ("best option\\should be\\\a better text\\n");
Query OK, 1 row affected (0.05 sec)

mysql> insert into b (ct) values ("best option\\should be\\\a better text\\n");
Query OK, 1 row affected (0.02 sec)
[10 Sep 2015 13:06] Marcin Marek
This is a duplicate of Bug #75516