Bug #42611 Crashes when importing sql script
Submitted: 4 Feb 2009 22:50 Modified: 30 Mar 2009 20:07
Reporter: German Garcia Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Workbench Severity:S2 (Serious)
Version:5.1.7 Alpha Preview OS:MacOS (Crash)
Assigned to: Alfredo Kojima CPU Architecture:Any
Tags: crash, import

[4 Feb 2009 22:50] German Garcia
Description:
MySQLWorkbench Crashes when i try to import a sql file with table structures, the weird part is that it worked yesterday and now it keeps crashing every time I try it.

Process:         MySQLWorkbench [10937]
Path:            /Applications/MySQLWorkbench.app/Contents/MacOS/MySQLWorkbench
Identifier:      com.sun.MySQLWorkbench
Version:         ??? (5.1.7.3648)
Code Type:       X86 (Native)
Parent Process:  launchd [162]

Date/Time:       2009-02-04 14:23:08.740 -0800
OS Version:      Mac OS X 10.5.6 (9G55)
Report Version:  6

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  1

Thread 0:
0   libSystem.B.dylib             	0xffff0292 __spin_lock + 50 (cpu_capabilities.h:234)
1   com.apple.CoreFoundation      	0x919277e6 _CFRelease + 342
2   com.apple.Foundation          	0x96e3fe4f NSPopAutoreleasePool + 431
3   com.apple.AppKit              	0x90e926cc -[NSApplication run] + 892
4   com.apple.AppKit              	0x90e5f8a4 NSApplicationMain + 574
5   com.sun.MySQLWorkbench        	0x0000ac42 start + 54

Thread 1 Crashed:
0   libSystem.B.dylib             	0x900d8fff usleep$NOCANCEL$UNIX2003 + 41
1   libSystem.B.dylib             	0x900f0685 abort + 85
2   libstdc++.6.dylib             	0x965a3005 0x9655b000 + 294917
3   libstdc++.6.dylib             	0x965a110c __gxx_personality_v0 + 1108
4   libstdc++.6.dylib             	0x965a106c __gxx_personality_v0 + 948
5   libgcc_s.1.dylib              	0x971d25ee _Unwind_Backtrace + 270
6   libgcc_s.1.dylib              	0x971d2a20 _Unwind_Resume + 112
7   libgrt.dylib                  	0x0049b957 grt::internal::OwnedList::remove(unsigned long) + 121
8   libgrt.dylib                  	0x0047c98e grt::UndoListInsertAction::undo(grt::UndoManager*) + 58
9   libgrt.dylib                  	0x0047ed0b grt::UndoGroup::undo(grt::UndoManager*) + 91
10  libgrt.dylib                  	0x0047ed0b grt::UndoGroup::undo(grt::UndoManager*) + 91
11  libgrt.dylib                  	0x0047c377 grt::UndoManager::cancel_undo_group() + 263
12  libgrt.dylib                  	0x004a935c grt::GRT::cancel_undoable_action() + 24
13  libworkbench.be.dylib         	0x00ac6f75 grt::AutoUndo::cancel() + 45
14  libworkbench.be.dylib         	0x00ac71d2 grt::AutoUndo::~AutoUndo() + 412
15  libworkbench.be.dylib         	0x00b021a2 wb::WBContext::execute_plugin_grt(grt::GRT*, grt::Ref<app_Plugin> const&, grt::BaseListRef const&) + 884
16  libworkbench.be.dylib         	0x00b165e8 sigc::bound_mem_functor3<grt::ValueRef, wb::WBContext, grt::GRT*, grt::Ref<app_Plugin> const&, grt::BaseListRef const&>::operator()(grt::GRT* const&, grt::Ref<app_Plugin> const&, grt::BaseListRef const&) const + 74
17  libworkbench.be.dylib         	0x00b17bc9 sigc::bind_functor<-1, sigc::bound_mem_functor3<grt::ValueRef, wb::WBContext, grt::GRT*, grt::Ref<app_Plugin> const&, grt::BaseListRef const&>, grt::Ref<app_Plugin>, grt::BaseListRef, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::deduce_result_type<grt::GRT* const&, void, void, void, void, void, void>::type sigc::bind_functor<-1, sigc::bound_mem_functor3<grt::ValueRef, wb::WBContext, grt::GRT*, grt::Ref<app_Plugin> const&, grt::BaseListRef const&>, grt::Ref<app_Plugin>, grt::BaseListRef, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()<grt::GRT* const&>(grt::GRT* const&) + 49
18  libworkbench.be.dylib         	0x00b17bf9 sigc::internal::slot_call1<sigc::bind_functor<-1, sigc::bound_mem_functor3<grt::ValueRef, wb::WBContext, grt::GRT*, grt::Ref<app_Plugin> const&, grt::BaseListRef const&>, grt::Ref<app_Plugin>, grt::BaseListRef, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, grt::ValueRef, grt::GRT*>::call_it(sigc::internal::slot_rep*, grt::GRT* const&) + 35
19  libgrt.be.dylib               	0x007fceb8 sigc::slot1<grt::ValueRef, grt::GRT*>::operator()(grt::GRT* const&) const + 60
20  libgrt.be.dylib               	0x007faf5f bec::GRTTask::execute(grt::GRT*) + 35
21  libgrt.be.dylib               	0x007fbed6 bec::GRTDispatcher::execute_task(bec::GRTTaskBase*) + 44
22  libgrt.be.dylib               	0x007fc552 bec::GRTDispatcher::worker_thread(void*) + 836
23  libglib-2.0.0.dylib           	0x004018fd g_static_private_free + 1293
24  libSystem.B.dylib             	0x90035095 _pthread_start + 321
25  libSystem.B.dylib             	0x90034f52 thread_start + 34

Thread 2: ...
...

Thread 1 crashed with X86 Thread State (32-bit):
  eax: 0x70a3dd30  ebx: 0x900f0639  ecx: 0x00000000  edx: 0x00000000
  edi: 0xa00055b8  esi: 0x00002710  ebp: 0xb00bb708  esp: 0xb00bb6e0
   ss: 0x0000001f  efl: 0x00010202  eip: 0x900d8fff   cs: 0x00000017
   ds: 0x0000001f   es: 0x0000001f   fs: 0x0000001f   gs: 0x00000037
  cr2: 0x01acb000

Binary Images:
...

How to repeat:
File -> Import -> Reverse Engineer MySQL Create Script

i narrowed the file to this....

CREATE TABLE alumno (
  alumnoid int(11) NOT NULL auto_increment,
  escuelaid int(11) default NULL,
  nombre varchar(32) default NULL,
  paterno varchar(32) default NULL,
  materno varchar(32) default NULL,
  gradoid int(11) default NULL,
  clienteid int(11) default NULL,
  ciclo varchar(10) default '2004-2005',
  categoria enum('alumno','maestro') default 'alumno',
  puesto varchar(16) default NULL,
  maestro_idioma varchar(16) default NULL,
  nickname2 varchar(16) default NULL,
  PRIMARY KEY  (alumnoid),
  KEY gradoid (gradoid)
) ENGINE=MyISAM AUTO_INCREMENT=361 DEFAULT CHARSET=utf8;

CREATE TABLE aaaa (
  id int(12) NOT NULL auto_increment,
  a_key varchar(4) NOT NULL,
  grade int(2) NOT NULL,
  subject int(1) NOT NULL,
  unit int(2) NOT NULL,
  order int(2) NOT NULL,
  priority int(1) NOT NULL,
  category int(6) NOT NULL,
  subcategory int(6) NOT NULL,
  movie_id int(6) NOT NULL,
  title varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
  comments text NOT NULL,
  update_time timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (id)
) ENGINE=MyISAM AUTO_INCREMENT=747 DEFAULT CHARSET=utf8;

This is part of a dump so i dont know exactly what part of it is making it crash.
[5 Feb 2009 9:55] Geert Vanderkelen
WorkBench 5.1.5 (older version) doesn't crash, but after successfully importing the 'alumno' table, it fails on the 'aaaa' table with error "Error executing plugin: basic_string::substr".

(Funny side effect: if you first do 'About Workbench', then you can import it at all.)
[5 Feb 2009 10:08] Geert Vanderkelen
Workbench 5.1.7b indeed crashes:

* Importing both 'alumno' and 'aaaa': crashes
* Doing first 'alumno', and then 'aaaa', it reports back an error executing plugin basic_string::substr
* Doing 'aaaa' alone, it gives again the basic_string error.
* Doing the import again after error from basic_string-plugin: crashes

Verified using Workbench 5.1.7b (and 5.1.5) on Mac.
[5 Feb 2009 10:12] Geert Vanderkelen
It actually doesn't matter which of the two tables, it sometimes crashes on 'alumno' too.
[28 Feb 2009 5:33] Alfredo Kojima
This seems to be fixed in 5.1.8
[30 Mar 2009 20:07] Johannes Taxacher
working in 5.1.9