[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bindings
Subject:    [Kde-bindings] Ruby plasmoid - crash during Garbage collection
From:        <kde () xfou ! com>
Date:       2009-12-12 15:36:02
Message-ID: 9fa26e080912120736m697de2efwa7ec015fa42c5e62 () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


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

[Attachment #5 (text/html)]

Hi,<br><br>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.<br><br>I put the qt debug level to the max but this trigger another \
bug (Ruby object allocation during Garbage collection).<br>

<br>Disabling Garbage collection solved the instability problem.<br><br>Here is for \
example a backtrace :<br><br> <meta name="qrichtext" content="1"><meta \
http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css"> \
p, li { white-space: pre-wrap; } </style>
<p style="margin: 0px; text-indent: 0px;">Application: Espace de travail Plasma \
(plasma-desktop), signal: Segmentation fault</p> <p style="margin: 0px; text-indent: \
0px;">[Current thread is 1 (Thread 0xb336a730 (LWP 11416))]</p>

<p style="margin: 0px; text-indent: 0px;">Thread 2 (Thread 0xa56adb70 (LWP \
11417)):</p> <p style="margin: 0px; text-indent: 0px;">#0  0xb7753430 in \
__kernel_vsyscall ()</p> <p style="margin: 0px; text-indent: 0px;">#1  0xb464fe15 in \
pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0</p> <p \
style="margin: 0px; text-indent: 0px;">#2  0xb764c78d in pthread_cond_wait () from \
/lib/tls/i686/cmov/libc.so.6</p> <p style="margin: 0px; text-indent: 0px;">#3  \
0xb5f4fe67 in QWaitConditionPrivate::wait (this=0xa819710, mutex=0xa81970c, \
time=4294967295) at thread/qwaitcondition_unix.cpp:87</p> <p style="margin: 0px; \
text-indent: 0px;">#4  QWaitCondition::wait (this=0xa819710, mutex=0xa81970c, \
time=4294967295) at thread/qwaitcondition_unix.cpp:159</p> <p style="margin: 0px; \
text-indent: 0px;">#5  0xb4948922 in QHostInfoAgent::run (this=0xa819700) at \
kernel/qhostinfo.cpp:260</p> <p style="margin: 0px; text-indent: 0px;">#6  0xb5f4ee32 \
in QThreadPrivate::start (arg=0xa819700) at thread/qthread_unix.cpp:188</p> <p \
style="margin: 0px; text-indent: 0px;">#7  0xb464b80e in start_thread () from \
/lib/tls/i686/cmov/libpthread.so.0</p> <p style="margin: 0px; text-indent: 0px;">#8  \
0xb763f7ee in clone () from /lib/tls/i686/cmov/libc.so.6</p>

<p style="margin: 0px; text-indent: 0px;">Thread 1 (Thread 0xb336a730 (LWP \
11416)):</p> <p style="margin: 0px; text-indent: 0px;">[KCrash Handler]</p>
<p style="margin: 0px; text-indent: 0px;">#6  0xa7cb0830 in smokeruby_free(void*) () \
from /usr/lib/libqtruby4shared.so.2</p> <p style="margin: 0px; text-indent: 0px;">#7  \
0xa7d925e3 in run_final (p=&lt;value optimized out&gt;) at gc.c:1946</p> <p \
style="margin: 0px; text-indent: 0px;">#8  finalize_list (p=&lt;value optimized \
out&gt;) at gc.c:1097</p> <p style="margin: 0px; text-indent: 0px;">#9  0xa7d9278b in \
rb_gc_finalize_deferred () at gc.c:1974</p> <p style="margin: 0px; text-indent: \
0px;">#10 0xa7d81075 in rb_thread_schedule () at eval.c:11004</p> <p style="margin: \
0px; text-indent: 0px;">#11 0xa7d79565 in rb_eval (self=&lt;value optimized out&gt;, \
n=&lt;value optimized out&gt;) at eval.c:4170</p> <p style="margin: 0px; text-indent: \
0px;">#12 0xa7d7967b in rb_eval (self=2816726384, n=&lt;value optimized out&gt;) at \
eval.c:3497</p> <p style="margin: 0px; text-indent: 0px;">#13 0xa7d7967b in rb_eval \
(self=2816726384, n=&lt;value optimized out&gt;) at eval.c:3497</p> <p style="margin: \
0px; text-indent: 0px;">#14 0xa7d7c9ab in rb_eval (self=&lt;value optimized out&gt;, \
n=&lt;value optimized out&gt;) at eval.c:3343</p> <p style="margin: 0px; text-indent: \
0px;">#15 0xa7d7eab9 in rb_call0 (klass=&lt;value optimized out&gt;, recv=&lt;value \
optimized out&gt;, id=4057, oid=4057, argc=2, argv=0xbfac01f0, body=0xa7380a34, \
flags=0) at eval.c:6068</p>


<p style="margin: 0px; text-indent: 0px;">#16 0xa7d7edba in rb_call \
(klass=2805964820, recv=2764513660, mid=4057, argc=2, argv=0xbfac01f0, scope=1, \
self=6) at eval.c:6164</p> <p style="margin: 0px; text-indent: 0px;">#17 0xa7d7f6b9 \
in rb_funcall2 (recv=191382352, mid=4057, argc=2, argv=0xbfac01f0) at eval.c:6300</p> \
<p style="margin: 0px; text-indent: 0px;">#18 0xa7d8577a in method_missing \
(obj=&lt;value optimized out&gt;, id=&lt;value optimized out&gt;, argc=1, \
argv=0xbfac0300, call_status=0) at eval.c:5742</p> <p style="margin: 0px; \
text-indent: 0px;">#19 0xa7d7eea6 in rb_call (klass=2764345620, recv=2764513660, \
mid=23828, argc=1, argv=0xbfac0300, scope=1, self=2764513660) at eval.c:6133</p> <p \
style="margin: 0px; text-indent: 0px;">#20 0xa7d7c0c2 in rb_eval (self=&lt;value \
optimized out&gt;, n=&lt;value optimized out&gt;) at eval.c:3485</p> <p \
style="margin: 0px; text-indent: 0px;">#21 0xa7d7c518 in rb_eval (self=3215723956, \
n=&lt;value optimized out&gt;) at eval.c:3319</p> <p style="margin: 0px; text-indent: \
0px;">#22 0xa7d7eab9 in rb_call0 (klass=&lt;value optimized out&gt;, recv=&lt;value \
optimized out&gt;, id=11225, oid=11225, argc=1, argv=0xbfac0db0, body=0xa4c54488, \
flags=0) at eval.c:6068</p>


<p style="margin: 0px; text-indent: 0px;">#23 0xa7d7edba in rb_call \
(klass=2764645040, recv=2764513660, mid=11225, argc=1, argv=0xbfac0db0, scope=0, \
self=2805415460) at eval.c:6164</p> <p style="margin: 0px; text-indent: 0px;">#24 \
0xa7d7bfcb in rb_eval (self=&lt;value optimized out&gt;, n=&lt;value optimized \
out&gt;) at eval.c:3503</p> <p style="margin: 0px; text-indent: 0px;">#25 0xa7d7eab9 \
in rb_call0 (klass=&lt;value optimized out&gt;, recv=&lt;value optimized out&gt;, \
id=11225, oid=11225, argc=1, argv=0xbfac1740, body=0xa73771a0, flags=0) at \
eval.c:6068</p>


<p style="margin: 0px; text-indent: 0px;">#26 0xa7d7edba in rb_call \
(klass=2805949940, recv=2805415460, mid=11225, argc=1, argv=0xbfac1740, scope=1, \
self=6) at eval.c:6164</p> <p style="margin: 0px; text-indent: 0px;">#27 0xa7d7f6b9 \
in rb_funcall2 (recv=191382352, mid=11225, argc=1, argv=0xbfac1740) at \
eval.c:6300</p> <p style="margin: 0px; text-indent: 0px;">#28 0xa7cb806b in ?? () \
from /usr/lib/libqtruby4shared.so.2</p> <p style="margin: 0px; text-indent: 0px;">#29 \
0xa7d75371 in rb_protect (proc=0xa7cb8030, data=2805415460, state=0xbfac16a8) at \
eval.c:5539</p> <p style="margin: 0px; text-indent: 0px;">#30 0xa7cb9630 in \
QtRuby::VirtualMethodCall::callMethod() () from /usr/lib/libqtruby4shared.so.2</p> <p \
style="margin: 0px; text-indent: 0px;">#31 0xa7cb813e in \
QtRuby::MethodCallBase::next() () from /usr/lib/libqtruby4shared.so.2</p> <p \
style="margin: 0px; text-indent: 0px;">#32 0xa7c87e36 in \
QtRuby::Binding::callMethod(short, void*, Smoke::StackItem*, bool) () from \
/usr/lib/libqtruby4shared.so.2</p> <p style="margin: 0px; text-indent: 0px;">#33 \
0xa7c0b16b in ?? () from /usr/lib/libsmokeplasma.so.2</p> <p style="margin: 0px; \
text-indent: 0px;">#34 0xb73fdc7c in Plasma::Applet::constraintsEvent \
(this=0xa705c30, constraints=...) at ../../plasma/applet.cpp:673</p> <p \
style="margin: 0px; text-indent: 0px;">#35 0xb7404843 in \
Plasma::Applet::flushPendingConstraintsEvents (this=0xa6de9c8) at \
../../plasma/applet.cpp:1173</p> <p style="margin: 0px; text-indent: 0px;">#36 \
0xb7404f78 in Plasma::Applet::timerEvent (this=0xa705c30, event=0xbfac1e30) at \
../../plasma/applet.cpp:2120</p> <p style="margin: 0px; text-indent: 0px;">#37 \
0xb604f3bf in QObject::event (this=0xa705c30, e=0xbfac1e30) at \
kernel/qobject.cpp:1075</p> <p style="margin: 0px; text-indent: 0px;">#38 0xb691eb64 \
in QGraphicsWidget::event (this=0xa705c30, event=0xbfac1e30) at \
graphicsview/qgraphicswidget.cpp:1340</p> <p style="margin: 0px; text-indent: \
0px;">#39 0xb62c5f54 in QApplicationPrivate::notify_helper (this=0xa01e310, \
receiver=0xa705c30, e=0xbfac1e30) at kernel/qapplication.cpp:4056</p> <p \
style="margin: 0px; text-indent: 0px;">#40 0xb62cd67c in QApplication::notify \
(this=0xa01b550, receiver=0xa705c30, e=0xbfac1e30) at \
kernel/qapplication.cpp:3603</p> <p style="margin: 0px; text-indent: 0px;">#41 \
0xb6f5dbfa in KApplication::notify (this=0xa01b550, receiver=0xa705c30, \
event=0xbfac1e30) at ../../kdeui/kernel/kapplication.cpp:302</p> <p style="margin: \
0px; text-indent: 0px;">#42 0xb603f6cb in QCoreApplication::notifyInternal \
(this=0xa01b550, receiver=0xa705c30, event=0xbfac1e30) at \
kernel/qcoreapplication.cpp:610</p> <p style="margin: 0px; text-indent: 0px;">#43 \
0xb606c7ce in QCoreApplication::sendEvent (this=0xa021134) at \
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213</p> <p \
style="margin: 0px; text-indent: 0px;">#44 QTimerInfoList::activateTimers \
(this=0xa021134) at kernel/qeventdispatcher_unix.cpp:572</p> <p style="margin: 0px; \
text-indent: 0px;">#45 0xb606a0e0 in timerSourceDispatch (source=0xa021100) at \
kernel/qeventdispatcher_glib.cpp:165</p> <p style="margin: 0px; text-indent: \
0px;">#46 0xb4697e78 in g_main_context_dispatch () from /lib/libglib-2.0.so.0</p> <p \
style="margin: 0px; text-indent: 0px;">#47 0xb469b720 in ?? () from \
/lib/libglib-2.0.so.0</p> <p style="margin: 0px; text-indent: 0px;">#48 0xb469b853 in \
g_main_context_iteration () from /lib/libglib-2.0.so.0</p> <p style="margin: 0px; \
text-indent: 0px;">#49 0xb606a02c in QEventDispatcherGlib::processEvents \
(this=0x9fefb68, flags=...) at kernel/qeventdispatcher_glib.cpp:327</p> <p \
style="margin: 0px; text-indent: 0px;">#50 0xb6366be5 in \
QGuiEventDispatcherGlib::processEvents (this=0x9fefb68, flags=...) at \
kernel/qguieventdispatcher_glib.cpp:202</p> <p style="margin: 0px; text-indent: \
0px;">#51 0xb603dc79 in QEventLoop::processEvents (this=0xbfac20f4, flags=) at \
kernel/qeventloop.cpp:149</p> <p style="margin: 0px; text-indent: 0px;">#52 \
0xb603e0ca in QEventLoop::exec (this=0xbfac20f4, flags=...) at \
kernel/qeventloop.cpp:201</p> <p style="margin: 0px; text-indent: 0px;">#53 \
0xb604053f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888</p> <p \
style="margin: 0px; text-indent: 0px;">#54 0xb62c5dd7 in QApplication::exec () at \
kernel/qapplication.cpp:3525</p> <p style="margin: 0px; text-indent: 0px;">#55 \
0xb76e780d in kdemain (argc=1, argv=0xbfac22d4) at \
../../../../plasma/shells/desktop/main.cpp:50</p> <p style="margin: 0px; text-indent: \
0px;">#56 0x080485cb in main (argc=1, argv=0xbfac22d4) at \
plasma-desktop_dummy.cpp:3</p><p style="margin: 0px; text-indent: 0px;"><br></p><p \
style="margin: 0px; text-indent: 0px;">I hope this will help you correct this \
bug.</p>

<p style="margin: 0px; text-indent: 0px;"><br></p><p style="margin: 0px; text-indent: \
0px;">By the way is their a way to desactive only Smokes garbage collection ? \
<br></p><p style="margin: 0px; text-indent: 0px;"><br></p>

<p style="margin: 0px; text-indent: 0px;">I am using kubuntu with KDE \
4.3.2.</p><br>I&#39;ll be back<br><br>Thanks<br>Cédric<br><p style="margin: 0px; \
text-indent: 0px;"><br></p> <p style="margin: 0px; text-indent: 0px;"></p> 



_______________________________________________
Kde-bindings mailing list
Kde-bindings@kde.org
https://mail.kde.org/mailman/listinfo/kde-bindings


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic