[Kde-bindings] calling KParts::MainWindow#action_collection causes a crash with recent revision of korundum from 4.4 branch

Stefano Crocco stefano.crocco at alice.it
Wed Jan 27 13:42:46 UTC 2010


With the latest revision of smoke and korundum from the 4.4 branch, calling
KParts::MainWindow#action_collection causes a crash (both with ruby 1.8 and
1.9). You can obtain it by running the following code

require 'korundum4'

data = KDE::AboutData.new "test", "", KDE::ki18n("Test"), "0.1",
    KDE.ki18n('A test application')
KDE::CmdLineArgs.init ARGV, data
a = KDE::Application.new
w = KParts::MainWindow.new nil, 0
w.action_collection

The same code runs perfectly with an older revision of smoke and korundum
(with smoke still generated using kalyptus). With the recent one, instead, I
get the following backtrace:

Application: Test (ruby19), signal: Segmentation fault
[Current thread is 1 (Thread 0xb751ab20 (LWP 8348))]

Thread 2 (Thread 0xb770eb70 (LWP 8349)):
#0  0xb788f424 in __kernel_vsyscall ()
#1  0xb76d46d2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb7830c67 in native_cond_timedwait (dummy=0x0) at thread_pthread.c:122
#3  thread_timer (dummy=0x0) at thread_pthread.c:753
#4  0xb76d0670 in start_thread () from /lib/libpthread.so.0
#5  0xb75ec49e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb751ab20 (LWP 8348)):
[KCrash Handler]
#6  0xb62c70cd in resolve_classname (o=0x85b8420) at /var/tmp/paludis/kde-base-kdebindings-ruby-4.4.9999/work/kdebindings-ruby-4.4.9999/ruby19/qtruby/src/Qt.cpp:466
#7  0xb62df310 in marshall_to_ruby<SmokeClassWrapper> (m=0xbfc2f01c) at /var/tmp/paludis/kde-base-kdebindings-ruby-4.4.9999/work/kdebindings-ruby-4.4.9999/ruby19/qtruby/src/marshall_basetypes.h:146
#8  marshall_it<SmokeClassWrapper> (m=0xbfc2f01c) at /var/tmp/paludis/kde-base-kdebindings-ruby-4.4.9999/work/kdebindings-ruby-4.4.9999/ruby19/qtruby/src/handlers.cpp:803
#9  marshall_basetype (m=0xbfc2f01c) at /var/tmp/paludis/kde-base-kdebindings-ruby-4.4.9999/work/kdebindings-ruby-4.4.9999/ruby19/qtruby/src/handlers.cpp:866
#10 0xb62fea57 in MethodReturnValue (this=0xbfc2f01c, smoke=0x8386b78, meth=<value optimized out>, stack=0x81b71c0, retval=0xbfc2f1c8)
    at /var/tmp/paludis/kde-base-kdebindings-ruby-4.4.9999/work/kdebindings-ruby-4.4.9999/ruby19/qtruby/src/marshall_types.cpp:406
#11 0xb6300c64 in QtRuby::MethodCall::callMethod (this=0xbfc2f198) at /var/tmp/paludis/kde-base-kdebindings-ruby-4.4.9999/work/kdebindings-ruby-4.4.9999/ruby19/qtruby/src/marshall_types.h:154
#12 0xb62fe99d in QtRuby::MethodCallBase::next (this=0xbfc2f198) at /var/tmp/paludis/kde-base-kdebindings-ruby-4.4.9999/work/kdebindings-ruby-4.4.9999/ruby19/qtruby/src/marshall_types.cpp:467
#13 0xb62c7dd2 in method_missing (argc=1, argv=0xbfc2f380, self=135260104) at /var/tmp/paludis/kde-base-kdebindings-ruby-4.4.9999/work/kdebindings-ruby-4.4.9999/ruby19/qtruby/src/Qt.cpp:910
#14 0xb781cad5 in call_cfunc (func=0xb62c7805 <method_missing(int, unsigned long*, unsigned long)>, recv=135260104, len=0, argc=1, argv=0x8386b78) at vm_insnhelper.c:286
#15 0xb781ed0d in vm_call0 (klass=137727464, recv=135260104, mid=392, argc=1, argv=0xbfc2f380, scope=1, self=6) at vm_eval.c:71
#16 rb_call0 (klass=137727464, recv=135260104, mid=392, argc=1, argv=0xbfc2f380, scope=1, self=6) at vm_eval.c:249
#17 0xb7821a49 in rb_call (recv=0, mid=392, argc=1, argv=0xbfc2f380) at vm_eval.c:255
#18 rb_funcall2 (recv=0, mid=392, argc=1, argv=0xbfc2f380) at vm_eval.c:433
#19 0xb7821b1f in vm_method_missing (th=0x804bad0, id=3037198, recv=135260104, num=<value optimized out>, blockptr=0x0, opt=0) at vm_insnhelper.c:434
#20 0xb7821e8d in vm_call_method (th=0x804bad0, cfp=0xb7329f78, num=0, blockptr=0x0, flag=0, id=11864, mn=0x0, recv=135260104) at vm_insnhelper.c:612
#21 0xb7824c83 in vm_exec_core (th=0x804bad0, initial=<value optimized out>) at insns.def:999
#22 0xb7829116 in vm_exec (th=0x804bad0) at vm.c:1079
#23 0xb782926a in rb_iseq_eval_main (iseqval=135654372) at vm.c:1290
#24 0xb7755969 in ruby_exec_node (n=0x815ebe4, file=0x0) at eval.c:206
#25 0xb7756e96 in ruby_run_node (n=0x815ebe4) at eval.c:234
#26 0x0804884e in main (argc=4, argv=0xbfc2fda4) at main.c:35

Thanks for the attention

Stefano



More information about the Kde-bindings mailing list