[CRASH] QGraphicsView::mapFromScene buggy

Alessandro Diaferia alediaferia at gmail.com
Mon Oct 20 12:51:48 CEST 2008


Many thanks for your quick reply :)
I've already checked them but i've just re-checked now :P
2008/10/20 Alexis Ménard <menard at kde.org>

> QSize s = dialog->size();
> QPoint pos = q->view()->mapFromScene(q->scenePos());
>
> Here is the code from popup applet. Three things that can crash :
>
> First q->view() return null so you call mapFromScene to a null or broken
> pointer. Run gdb and test the variable (or print it with kDebug).
>
Does not return null. checked with if(q->view())

>
>
> Second, q->scenePos() return crazy value (check).
>
return value printed with kDebug says: plasma(27263)/libplasma
Plasma::PopupAppletPrivate::updateDialogPosition: SCENEPOS QPointF(59, -54)

>
>
> Third, q is null or broken. Test.
>
Not broken, checked =)

>
>
> mapFrom/toScene are common functions used everywhere both in KDE and Qt so
> it's probably not a bug inside Qt. If it's the case for sure i will fix it.
>
> Give me news.
>
>
> 2008/10/20 Alessandro Diaferia <alediaferia at gmail.com>
>
>> Hello my dear ML,
>>
>> i'm fixing devicenotifier patch according to Aaron's suggestions but i
>> encounter a crash calling PopupApplet::showPopup(); The backtrace and my
>> tests say that the crash comes from Qt side, and it happens calling
>> QGraphicsView::mapFromScene, in particular from line 442 of my
>> popupapplet.cpp (PopupAppletPrivate::updateDialogPosition());
>>
>> Along with this mail comes the device notifier patch.
>>
>> Here instead comes the BT:
>>
>> Application: Plasma Workspace (plasma), signal SIGSEGV
>>
>> Using host libthread_db library "/lib/libthread_db.so.1".
>>
>> [Current thread is 0 (LWP 1037)]
>>
>> Thread 2 (Thread 0xb2dd7b90 (LWP 1038)):
>>
>> #0 0xb8069424 in __kernel_vsyscall ()
>>
>> #1 0xb5f45be5 in pthread_cond_wait@@GLIBC_2.3.2 () from
>> /lib/libpthread.so.0
>>
>> #2 0xb5fa3fc2 in QWaitCondition::wait (this=0x9cf5d30, mutex=0x9cf5d2c,
>> time=4294967295) at thread/qwaitcondition_unix.cpp:88
>>
>> #3 0xb7dd508b in QHostInfoAgent::run (this=0x9cf5d20) at
>> kernel/qhostinfo.cpp:247
>>
>> #4 0xb5fa2e59 in QThreadPrivate::start (arg=0x9cf5d20) at
>> thread/qthread_unix.cpp:191
>>
>> #5 0xb5f42160 in start_thread () from /lib/libpthread.so.0
>>
>> #6 0xb5c8fc0e in clone () from /lib/libc.so.6
>>
>>
>>  Thread 1 (Thread 0xb49b7730 (LWP 1037)):
>>
>> [KCrash Handler]
>>
>> *#6 0xb73bef70 in QGraphicsView::mapFromScene () from
>> /usr/lib/qt4/libQtGui.so.4*
>>
>> *#7 0xb7f3549a in Plasma::PopupAppletPrivate::updateDialogPosition
>> (this=0x9b0ccc0) at
>> /var/tmp/paludis/kde-base-libplasma-scm/work/libplasma/libs/plasma/popupapplet.cpp:442
>> *
>>
>> *#8 0xb7f36184 in Plasma::PopupApplet::showPopup (this=0x9b5ad48,
>> popupDuration=0) at
>> /var/tmp/paludis/kde-base-libplasma-scm/work/libplasma/libs/plasma/popupapplet.cpp:311
>> *
>>
>> #9 0xb315e09e in DeviceNotifier::notifyDevice (this=0x9b5ad48,
>> name=@0x9dae9d8)
>>
>> at
>> /var/tmp/paludis/kde-base-plasma-workspace-scm/work/plasma-workspace/plasma/applets/devicenotifier/devicenotifier.cpp:211
>>
>> #10 0xb315e1da in DeviceNotifier::onSourceAdded (this=0x9b5ad48,
>> name=@0x9dae9d8)
>>
>> at
>> /var/tmp/paludis/kde-base-plasma-workspace-scm/work/plasma-workspace/plasma/applets/devicenotifier/devicenotifier.cpp:257
>>
>> #11 0xb315f130 in DeviceNotifier::fillPreviousDevices (this=0x9b5ad48) at
>> /var/tmp/paludis/kde-base-plasma-workspace-scm/work/plasma-workspace/plasma/applets/devicenotifier/devicenotifier.cpp:128
>>
>> #12 0xb315f217 in DeviceNotifier::constraintsEvent (this=0x9b5ad48,
>> constraints={i = -1074254176})
>>
>> at
>> /var/tmp/paludis/kde-base-plasma-workspace-scm/work/plasma-workspace/plasma/applets/devicenotifier/devicenotifier.cpp:106
>>
>> #13 0xb7efc7d9 in Plasma::Applet::flushPendingConstraintsEvents
>> (this=0x9b5ad48) at
>> /var/tmp/paludis/kde-base-libplasma-scm/work/libplasma/libs/plasma/applet.cpp:890
>>
>> #14 0xb7f18ba7 in Plasma::Corona::loadLayout (this=0x9acd3d8,
>> configName=@0xbff830c0) at
>> /var/tmp/paludis/kde-base-libplasma-scm/work/libplasma/libs/plasma/corona.cpp:308
>>
>> #15 0xb7f18e33 in Plasma::Corona::initializeLayout (this=0x9acd3d8,
>> configName=@0xbff830c0) at
>> /var/tmp/paludis/kde-base-libplasma-scm/work/libplasma/libs/plasma/corona.cpp:252
>>
>> #16 0xb80459e3 in PlasmaApp::corona (this=0x99c9128) at
>> /var/tmp/paludis/kde-base-plasma-workspace-scm/work/plasma-workspace/plasma/shells/desktop/plasmaapp.cpp:434
>>
>> #17 0xb80477e8 in PlasmaApp (this=0x99c9128, display=0x99c0720,
>> visual=161251368, colormap=98566145)
>>
>> at
>> /var/tmp/paludis/kde-base-plasma-workspace-scm/work/plasma-workspace/plasma/shells/desktop/plasmaapp.cpp:228
>>
>> #18 0xb8048105 in PlasmaApp::self () at
>> /var/tmp/paludis/kde-base-plasma-workspace-scm/work/plasma-workspace/plasma/shells/desktop/plasmaapp.cpp:121
>>
>> #19 0xb8038b11 in kdemain (argc=1, argv=0xbff83344) at
>> /var/tmp/paludis/kde-base-plasma-workspace-scm/work/plasma-workspace/plasma/shells/desktop/main.cpp:55
>>
>> #20 0x080487af in main (argc=162901320, argv=0x9e19bb0) at
>> /var/tmp/paludis/kde-base-plasma-workspace-scm/work/plasma-workspace_build/plasma/shells/desktop/plasma_qgv_dummy.cpp:3
>>
>> #21 0xb5bda635 in __libc_start_main () from /lib/libc.so.6
>>
>> #22 0x080486f1 in _start ()
>>
>>
>> --
>> Alessandro Diaferia
>>
>> _______________________________________________
>> Plasma-devel mailing list
>> Plasma-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/plasma-devel
>>
>>
>
> _______________________________________________
> Plasma-devel mailing list
> Plasma-devel at kde.org
> https://mail.kde.org/mailman/listinfo/plasma-devel
>
>

Thanks again..

Regards

-- 
Alessandro Diaferia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/plasma-devel/attachments/20081020/fa50f149/attachment.htm 


More information about the Plasma-devel mailing list