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

List:       kde-bugs-dist
Subject:    [KScreen] [Bug 343543] KDE System Settings crashed when dispaly settings changed
From:       Dāvis <davispuh () gmail ! com>
Date:       2015-07-16 4:36:41
Message-ID: bug-343543-17878-wEyFiB10Es () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=343543

Dāvis <davispuh@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|5.2.0                       |git

--- Comment #23 from Dāvis <davispuh@gmail.com> ---
I recompiled everything from git and it happens even with latest Qt 5.5 from
git.

Here's a backtrace from debug build

#0  QQuickWindow::maybeUpdate (this=0x801)
    at
/mnt/AUR/qt5-declarative-git/src/qt5-declarative/src/quick/items/qquickwindow.cpp:3039
#1  0x00007ffff2e5e039 in QQuickWindowPrivate::dirtyItem (this=<optimized out>)
    at
/mnt/AUR/qt5-declarative-git/src/qt5-declarative/src/quick/items/qquickwindow.cpp:939
#2  0x00007ffff2e48d85 in QQuickItemPrivate::addToDirtyList (this=0xdbd700)
    at
/mnt/AUR/qt5-declarative-git/src/qt5-declarative/src/quick/items/qquickitem.cpp:5613
#3  0x00007ffff2e48e43 in QQuickItemPrivate::dirty (this=0xdbd700,
type=<optimized out>)
    at
/mnt/AUR/qt5-declarative-git/src/qt5-declarative/src/quick/items/qquickitem.cpp:5594
#4  0x00007ffff2e496cd in QQuickItem::update (this=0xdbd680)
    at
/mnt/AUR/qt5-declarative-git/src/qt5-declarative/src/quick/items/qquickitem.cpp:4088
#5  0x00007ffff2e56c0d in QQuickItem::qt_static_metacall (_o=<optimized out>,
_c=<optimized out>, _id=<optimized out>,
    _a=<optimized out>) at .moc/moc_qquickitem.cpp:597
#6  0x00007ffff45f2ae1 in QObject::event (this=this@entry=0xdbd680,
e=e@entry=0x7fffc411f5c0) at kernel/qobject.cpp:1239
#7  0x00007ffff2e53a63 in QQuickItem::event (this=0xdbd680, ev=0x7fffc411f5c0)
    at
/mnt/AUR/qt5-declarative-git/src/qt5-declarative/src/quick/items/qquickitem.cpp:7294
#8  0x00007ffff6087d94 in QApplicationPrivate::notify_helper
(this=this@entry=0x681dd0, receiver=receiver@entry=0xdbd680,
    e=e@entry=0x7fffc411f5c0) at kernel/qapplication.cpp:3717
#9  0x00007ffff608d2c8 in QApplication::notify (this=0x7fffffffe490,
receiver=0xdbd680, e=0x7fffc411f5c0)
    at kernel/qapplication.cpp:3500
#10 0x00007ffff45c49dc in QCoreApplication::notifyInternal
(this=0x7fffffffe490, receiver=0xdbd680,
    event=event@entry=0x7fffc411f5c0) at kernel/qcoreapplication.cpp:965
#11 0x00007ffff45c7dea in sendEvent (event=0x7fffc411f5c0, receiver=<optimized
out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:224
#12 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0,
event_type=event_type@entry=0, data=0x681430)
    at kernel/qcoreapplication.cpp:1593
#13 0x00007ffff45c8230 in QCoreApplication::sendPostedEvents
(receiver=receiver@entry=0x0, event_type=event_type@entry=0)
    at kernel/qcoreapplication.cpp:1451
#14 0x00007ffff4617f63 in postEventSourceDispatch (s=0x6d7a90) at
kernel/qeventdispatcher_glib.cpp:271
#15 0x00007fffefcce9fd in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#16 0x00007fffefccece0 in ?? () from /usr/lib/libglib-2.0.so.0
#17 0x00007fffefcced8c in g_main_context_iteration () from
/usr/lib/libglib-2.0.so.0
#18 0x00007ffff4617fd7 in QEventDispatcherGlib::processEvents (this=0x6dff50,
flags=...) at kernel/qeventdispatcher_glib.cpp:418
#19 0x00007ffff45c339a in QEventLoop::exec (this=this@entry=0x7fffffffe370,
flags=..., flags@entry=...)
    at kernel/qeventloop.cpp:204
#20 0x00007ffff45cb23c in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:1229
#21 0x00007ffff592cbf4 in QGuiApplication::exec () at
kernel/qguiapplication.cpp:1528
#22 0x00007ffff6084bb5 in QApplication::exec () at kernel/qapplication.cpp:2977
#23 0x000000000040f52b in main (argc=1, argv=<optimized out>)
    at /mnt/AUR/systemsettings-git/src/systemsettings/app/main.cpp:55


Dump of assembler code for function QQuickItemPrivate::addToDirtyList()
[...]
5608            QQuickWindowPrivate *p = QQuickWindowPrivate::get(window);
5609            nextDirtyItem = p->dirtyItemList;
   0x00007ffff2e48d46 <+54>:    mov    rax,QWORD PTR [rdi+0x1a8]
   0x00007ffff2e48d4d <+61>:    mov    QWORD PTR [rbx+0xa8],rax
5610            if (nextDirtyItem)
QQuickItemPrivate::get(nextDirtyItem)->prevDirtyItem = &nextDirtyItem;
   0x00007ffff2e48d54 <+68>:    test   rax,rax
   0x00007ffff2e48d57 <+71>:    je     0x7ffff2e48d6b
<QQuickItemPrivate::addToDirtyList()+91>
   0x00007ffff2e48d59 <+73>:    mov    rax,QWORD PTR [rax+0x8]
   0x00007ffff2e48d5d <+77>:    lea    rdx,[rbx+0xa8]
   0x00007ffff2e48d64 <+84>:    mov    QWORD PTR [rax+0xb0],rdx
5611            prevDirtyItem = &p->dirtyItemList;
   0x00007ffff2e48d6b <+91>:    lea    rax,[rdi+0x1a8]
   0x00007ffff2e48d72 <+98>:    mov    QWORD PTR [rbx+0xb0],rax
5612            p->dirtyItemList = q;
   0x00007ffff2e48d79 <+105>:   mov    QWORD PTR [rdi+0x1a8],rsi
5613            p->dirtyItem(q);
=>   0x00007ffff2e48d80 <+112>:   call   0x7ffff2e5e030
<QQuickWindowPrivate::dirtyItem(QQuickItem*)>

Dump of assembler code for function
QQuickWindowPrivate::dirtyItem(QQuickItem*):
937     {
938         Q_Q(QQuickWindow);
939         q->maybeUpdate();
   0x00007ffff2e5e030 <+0>:     mov    rdi,QWORD PTR [rdi+0x8]
=>   0x00007ffff2e5e034 <+4>:     jmp    0x7ffff2e5dfe8
<QQuickWindow::maybeUpdate()>

Dump of assembler code for function QQuickWindow::maybeUpdate():
135             return d;
=> 0x00007ffff2e5dfe8 <+0>:     mov    rdx,QWORD PTR [rdi+0x8]
(gdb) p this
$4 = (QQuickWindow * const) 0x801
(gdb) p *this
Cannot access memory at address 0x801

I'm pretty sure this is caused by same memory corruption as in bug 344651
Something trashes QWindow


Have anyone reported it to Qt? It is always reproducible.

-- 
You are receiving this mail because:
You are watching all bug changes.=
[prev in list] [next in list] [prev in thread] [next in thread] 

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