Bug #63589 Crashes when you close the SQL editor while tables are being fetched
Submitted: 5 Dec 2011 0:29 Modified: 30 Mar 2012 3:45
Reporter: Jeremy Bell Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Workbench: SQL Editor Severity:S2 (Serious)
Version:5.2.36 OS:MacOS (Lion 10.7)
Assigned to: CPU Architecture:Any
Tags: close, crash, Fetching, sql editor

[5 Dec 2011 0:29] Jeremy Bell
Description:
When you open an SQL editor tab and then expand the schema for a large remote database which takes a while to fetch all tables, and then close the SQL editor tab before the tables are done "fetching...", Workbench will crash.

How to repeat:
Open an SQL editor tab and then expand the schema for a large remote database which takes a while to fetch all tables, and then close the SQL editor tab before the tables are done "fetching...".

Suggested fix:
Detect any currently running actions, and clean them up sufficiently before closing an SQL Editor tab.
[12 Dec 2011 17:02] Valeriy Kravchuk
I tried to close SQL Editor window a couple of times while it was fetching info about 900+ tables in local 5.1.61, and eventually had got a crash:

Process:         MySQLWorkbench [91663]
Path:            /Applications/MySQLWorkbench.app/Contents/MacOS/MySQLWorkbench
Identifier:      com.oracle.MySQLWorkbench
Version:         ??? (5.2.36)
Code Type:       X86 (Native)
Parent Process:  launchd [84]

Date/Time:       2011-12-12 19:00:13.628 +0200
OS Version:      Mac OS X 10.5.6 (9G55)
Report Version:  6

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000c5edc33f
Crashed Thread:  0

Thread 0 Crashed:
0   libwbpublic.be.dylib          	0x0068cd1c boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf0<void, bec::GRTTaskBase>, boost::_bi::list1<boost::_bi::value<bec::GRTTaskBase*> > >, void>::invoke(boost::detail::function::function_buffer&) + 23
1   com.oracle.MySQLWorkbench     	0x0001202b boost::function0<void>::operator()() const + 79
2   libwbpublic.be.dylib          	0x0068a343 bec::GRTDispatcher::flush_pending_callbacks() + 35
3   libwbpublic.be.dylib          	0x00697727 bec::GRTManager::perform_idle_tasks() + 237
4   libwbprivate.be.dylib         	0x00d7f13d wb::WBContext::flush_idle_tasks() + 29
5   com.oracle.MySQLWorkbench     	0x00013a31 -[WBMainController flushIdleTasks:] + 40
6   com.apple.Foundation          	0x91a2701e __NSFirePerformTimer + 382
7   com.apple.CoreFoundation      	0x951449a2 __CFRunLoopDoObservers + 466
8   com.apple.CoreFoundation      	0x95145cfc CFRunLoopRunSpecific + 844
9   com.apple.CoreFoundation      	0x95146cd8 CFRunLoopRunInMode + 88
10  com.apple.HIToolbox           	0x9563f2c0 RunCurrentEventLoopInMode + 283
11  com.apple.HIToolbox           	0x9563f0d9 ReceiveNextEventCommon + 374
12  com.apple.HIToolbox           	0x9563ef4d BlockUntilNextEventMatchingListInMode + 106
13  com.apple.AppKit              	0x91204d7d _DPSNextEvent + 657
14  com.apple.AppKit              	0x91204630 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
15  com.apple.AppKit              	0x911fd66b -[NSApplication run] + 795
16  com.apple.AppKit              	0x911ca8a4 NSApplicationMain + 574
17  com.oracle.MySQLWorkbench     	0x0000b1e2 start + 54
...
[30 Mar 2012 3:45] Philip Olson
Fixed as of 5.2.39, and here's the changelog entry:

On Mac OS X, expanding the schema for a remote database from within the SQL
Editor tab would crash, if the SQL editor tab was closed before the tables were
done being fetched.