[Kde-bindings] Ruby plasmoid - crash during Garbage collection
Cédric
kde at xfou.com
Sat Dec 12 15:36:02 UTC 2009
Hi,
I am working on a ruby plasmoid and my application is not really stable and
sometimes plasma crashes, sometimes just passing the mouse over the panel
seems to crash plasma.
I put the qt debug level to the max but this trigger another bug (Ruby
object allocation during Garbage collection).
Disabling Garbage collection solved the instability problem.
Here is for example a backtrace :
Application: Espace de travail Plasma (plasma-desktop), signal:
Segmentation fault
[Current thread is 1 (Thread 0xb336a730 (LWP 11416))]
Thread 2 (Thread 0xa56adb70 (LWP 11417)):
#0 0xb7753430 in __kernel_vsyscall ()
#1 0xb464fe15 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/i686/cmov/libpthread.so.0
#2 0xb764c78d in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6
#3 0xb5f4fe67 in QWaitConditionPrivate::wait (this=0xa819710,
mutex=0xa81970c, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4 QWaitCondition::wait (this=0xa819710, mutex=0xa81970c, time=4294967295)
at thread/qwaitcondition_unix.cpp:159
#5 0xb4948922 in QHostInfoAgent::run (this=0xa819700) at
kernel/qhostinfo.cpp:260
#6 0xb5f4ee32 in QThreadPrivate::start (arg=0xa819700) at
thread/qthread_unix.cpp:188
#7 0xb464b80e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#8 0xb763f7ee in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 1 (Thread 0xb336a730 (LWP 11416)):
[KCrash Handler]
#6 0xa7cb0830 in smokeruby_free(void*) () from
/usr/lib/libqtruby4shared.so.2
#7 0xa7d925e3 in run_final (p=<value optimized out>) at gc.c:1946
#8 finalize_list (p=<value optimized out>) at gc.c:1097
#9 0xa7d9278b in rb_gc_finalize_deferred () at gc.c:1974
#10 0xa7d81075 in rb_thread_schedule () at eval.c:11004
#11 0xa7d79565 in rb_eval (self=<value optimized out>, n=<value optimized
out>) at eval.c:4170
#12 0xa7d7967b in rb_eval (self=2816726384, n=<value optimized out>) at
eval.c:3497
#13 0xa7d7967b in rb_eval (self=2816726384, n=<value optimized out>) at
eval.c:3497
#14 0xa7d7c9ab in rb_eval (self=<value optimized out>, n=<value optimized
out>) at eval.c:3343
#15 0xa7d7eab9 in rb_call0 (klass=<value optimized out>, recv=<value
optimized out>, id=4057, oid=4057, argc=2, argv=0xbfac01f0, body=0xa7380a34,
flags=0) at eval.c:6068
#16 0xa7d7edba in rb_call (klass=2805964820, recv=2764513660, mid=4057,
argc=2, argv=0xbfac01f0, scope=1, self=6) at eval.c:6164
#17 0xa7d7f6b9 in rb_funcall2 (recv=191382352, mid=4057, argc=2,
argv=0xbfac01f0) at eval.c:6300
#18 0xa7d8577a in method_missing (obj=<value optimized out>, id=<value
optimized out>, argc=1, argv=0xbfac0300, call_status=0) at eval.c:5742
#19 0xa7d7eea6 in rb_call (klass=2764345620, recv=2764513660, mid=23828,
argc=1, argv=0xbfac0300, scope=1, self=2764513660) at eval.c:6133
#20 0xa7d7c0c2 in rb_eval (self=<value optimized out>, n=<value optimized
out>) at eval.c:3485
#21 0xa7d7c518 in rb_eval (self=3215723956, n=<value optimized out>) at
eval.c:3319
#22 0xa7d7eab9 in rb_call0 (klass=<value optimized out>, recv=<value
optimized out>, id=11225, oid=11225, argc=1, argv=0xbfac0db0,
body=0xa4c54488, flags=0) at eval.c:6068
#23 0xa7d7edba in rb_call (klass=2764645040, recv=2764513660, mid=11225,
argc=1, argv=0xbfac0db0, scope=0, self=2805415460) at eval.c:6164
#24 0xa7d7bfcb in rb_eval (self=<value optimized out>, n=<value optimized
out>) at eval.c:3503
#25 0xa7d7eab9 in rb_call0 (klass=<value optimized out>, recv=<value
optimized out>, id=11225, oid=11225, argc=1, argv=0xbfac1740,
body=0xa73771a0, flags=0) at eval.c:6068
#26 0xa7d7edba in rb_call (klass=2805949940, recv=2805415460, mid=11225,
argc=1, argv=0xbfac1740, scope=1, self=6) at eval.c:6164
#27 0xa7d7f6b9 in rb_funcall2 (recv=191382352, mid=11225, argc=1,
argv=0xbfac1740) at eval.c:6300
#28 0xa7cb806b in ?? () from /usr/lib/libqtruby4shared.so.2
#29 0xa7d75371 in rb_protect (proc=0xa7cb8030, data=2805415460,
state=0xbfac16a8) at eval.c:5539
#30 0xa7cb9630 in QtRuby::VirtualMethodCall::callMethod() () from
/usr/lib/libqtruby4shared.so.2
#31 0xa7cb813e in QtRuby::MethodCallBase::next() () from
/usr/lib/libqtruby4shared.so.2
#32 0xa7c87e36 in QtRuby::Binding::callMethod(short, void*,
Smoke::StackItem*, bool) () from /usr/lib/libqtruby4shared.so.2
#33 0xa7c0b16b in ?? () from /usr/lib/libsmokeplasma.so.2
#34 0xb73fdc7c in Plasma::Applet::constraintsEvent (this=0xa705c30,
constraints=...) at ../../plasma/applet.cpp:673
#35 0xb7404843 in Plasma::Applet::flushPendingConstraintsEvents
(this=0xa6de9c8) at ../../plasma/applet.cpp:1173
#36 0xb7404f78 in Plasma::Applet::timerEvent (this=0xa705c30,
event=0xbfac1e30) at ../../plasma/applet.cpp:2120
#37 0xb604f3bf in QObject::event (this=0xa705c30, e=0xbfac1e30) at
kernel/qobject.cpp:1075
#38 0xb691eb64 in QGraphicsWidget::event (this=0xa705c30, event=0xbfac1e30)
at graphicsview/qgraphicswidget.cpp:1340
#39 0xb62c5f54 in QApplicationPrivate::notify_helper (this=0xa01e310,
receiver=0xa705c30, e=0xbfac1e30) at kernel/qapplication.cpp:4056
#40 0xb62cd67c in QApplication::notify (this=0xa01b550, receiver=0xa705c30,
e=0xbfac1e30) at kernel/qapplication.cpp:3603
#41 0xb6f5dbfa in KApplication::notify (this=0xa01b550, receiver=0xa705c30,
event=0xbfac1e30) at ../../kdeui/kernel/kapplication.cpp:302
#42 0xb603f6cb in QCoreApplication::notifyInternal (this=0xa01b550,
receiver=0xa705c30, event=0xbfac1e30) at kernel/qcoreapplication.cpp:610
#43 0xb606c7ce in QCoreApplication::sendEvent (this=0xa021134) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#44 QTimerInfoList::activateTimers (this=0xa021134) at
kernel/qeventdispatcher_unix.cpp:572
#45 0xb606a0e0 in timerSourceDispatch (source=0xa021100) at
kernel/qeventdispatcher_glib.cpp:165
#46 0xb4697e78 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#47 0xb469b720 in ?? () from /lib/libglib-2.0.so.0
#48 0xb469b853 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#49 0xb606a02c in QEventDispatcherGlib::processEvents (this=0x9fefb68,
flags=...) at kernel/qeventdispatcher_glib.cpp:327
#50 0xb6366be5 in QGuiEventDispatcherGlib::processEvents (this=0x9fefb68,
flags=...) at kernel/qguieventdispatcher_glib.cpp:202
#51 0xb603dc79 in QEventLoop::processEvents (this=0xbfac20f4, flags=) at
kernel/qeventloop.cpp:149
#52 0xb603e0ca in QEventLoop::exec (this=0xbfac20f4, flags=...) at
kernel/qeventloop.cpp:201
#53 0xb604053f in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:888
#54 0xb62c5dd7 in QApplication::exec () at kernel/qapplication.cpp:3525
#55 0xb76e780d in kdemain (argc=1, argv=0xbfac22d4) at
../../../../plasma/shells/desktop/main.cpp:50
#56 0x080485cb in main (argc=1, argv=0xbfac22d4) at
plasma-desktop_dummy.cpp:3
I hope this will help you correct this bug.
By the way is their a way to desactive only Smokes garbage collection ?
I am using kubuntu with KDE 4.3.2.
I'll be back
Thanks
Cédric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20091212/7717cbe6/attachment.html>
More information about the Kde-bindings
mailing list