Bug 220456 - Crash when I Closed a VNC Session [QMutex::lock, relock, VncClientThread::run]
Summary: Crash when I Closed a VNC Session [QMutex::lock, relock, VncClientThread::run]
Status: RESOLVED FIXED
Alias: None
Product: krdc
Classification: Applications
Component: VNC (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Urs Wolfer
URL:
Keywords:
: 238450 (view as bug list)
Depends on: 185464
Blocks:
  Show dependency treegraph
 
Reported: 2009-12-28 21:27 UTC by Lissandro Sosa
Modified: 2010-10-17 17:41 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lissandro Sosa 2009-12-28 21:27:43 UTC
Application: krdc (4.3.85 (KDE 4.3.85 (KDE 4.4 Beta2)) "release 203")
KDE Platform Version: 4.3.85 (KDE 4.3.85 (KDE 4.4 Beta2)) "release 203"
Qt Version: 4.6.0
Operating System: Linux 2.6.31.5-0.1-default x86_64
Distribution: "openSUSE 11.2 (x86_64)"

-- Information about the crash:
I opened a vnc session with a client, when i press the disconnect button, this app crash

 -- Backtrace:
Application: KRDC (krdc), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fc0f667d7f0 (LWP 8599))]

Thread 2 (Thread 0x7fc0e63b7910 (LWP 8602)):
[KCrash Handler]
#5  0x00007fc0f37207fc in QMutex::lock() () from /usr/lib64/libQtCore.so.4
#6  0x00007fc0e9fc3225 in relock (this=<value optimized out>) at /usr/include/QtCore/qmutex.h:120
#7  VncClientThread::run (this=<value optimized out>) at /usr/src/debug/kdenetwork-4.3.85/krdc/vnc/vncclientthread.cpp:295
#8  0x00007fc0f37256b5 in ?? () from /usr/lib64/libQtCore.so.4
#9  0x00007fc0f161565d in start_thread () from /lib64/libpthread.so.0
#10 0x00007fc0f311414d in clone () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fc0f667d7f0 (LWP 8599)):
#0  0x00007fc0f310b033 in poll () from /lib64/libc.so.6
#1  0x00007fc0ed66891a in ?? () from /usr/lib64/libxcb.so.1
#2  0x00007fc0ed668e57 in ?? () from /usr/lib64/libxcb.so.1
#3  0x00007fc0ed669115 in xcb_writev () from /usr/lib64/libxcb.so.1
#4  0x00007fc0f210703a in _XSend () from /usr/lib64/libX11.so.6
#5  0x00007fc0f2107585 in _XFlush () from /usr/lib64/libX11.so.6
#6  0x00007fc0f20f8a66 in _XSetClipRectangles () from /usr/lib64/libX11.so.6
#7  0x00007fc0f20f8b43 in XSetClipRectangles () from /usr/lib64/libX11.so.6
#8  0x00007fc0f4382dd9 in x11SetClipRegion (r=<value optimized out>, picture=<value optimized out>, gc2=<value optimized out>, gc=<value optimized out>, dpy=<value optimized out>)
    at painting/qpaintengine_x11.cpp:166
#9  QX11PaintEngine::updatePen (r=<value optimized out>, picture=<value optimized out>, gc2=<value optimized out>, gc=<value optimized out>, dpy=<value optimized out>)
    at painting/qpaintengine_x11.cpp:1303
#10 0x00007fc0f43845c6 in QX11PaintEngine::updateState (this=0xc311c0, state=...) at painting/qpaintengine_x11.cpp:1078
#11 0x00007fc0f42d09a3 in QPainterPrivate::updateStateImpl (this=0xc3ccb0, newState=0xbff480) at painting/qpainter.cpp:892
#12 0x00007fc0f42d0a82 in QPainterPrivate::updateState (this=0xc3ccb0, newState=0xbff480) at painting/qpainter.cpp:920
#13 0x00007fc0f42d3724 in QPainter::save (this=<value optimized out>) at painting/qpainter.cpp:1509
#14 0x00007fc0f448caf7 in QCommonStyle::drawControl (this=0x6a6570, element=<value optimized out>, opt=0x7fff729721f0, p=0x7fff729729d0, widget=0x89c910) at styles/qcommonstyle.cpp:2158
#15 0x00007fc0f4e76b22 in KStyle::drawControl(QStyle::ControlElement, QStyleOption const*, QPainter*, QWidget const*) const () from /usr/lib64/libkdeui.so.5
#16 0x00007fc0ebe89e6f in ?? () from /usr/lib64/kde4/plugins/styles/oxygen.so
#17 0x00007fc0f474e190 in QStyledItemDelegate::paint (this=0x863660, painter=0x7fff729729d0, option=<value optimized out>, index=...) at itemviews/qstyleditemdelegate.cpp:424
#18 0x00007fc0f46e9499 in QTreeView::drawRow (this=<value optimized out>, painter=<value optimized out>, option=<value optimized out>, index=<value optimized out>) at itemviews/qtreeview.cpp:1672
#19 0x00007fc0f46e2f06 in QTreeView::drawTree (this=0x89c910, painter=<value optimized out>, region=<value optimized out>) at itemviews/qtreeview.cpp:1435
#20 0x00007fc0f46e39a3 in QTreeView::paintEvent (this=0x89c910, event=0x7fff72973620) at itemviews/qtreeview.cpp:1268
#21 0x00007fc0f41d6e15 in QWidget::event (this=0x89c910, event=0x7fff72973620) at kernel/qwidget.cpp:8120
#22 0x00007fc0f4579106 in QFrame::event (this=0x89c910, e=0x7fff72973620) at widgets/qframe.cpp:557
#23 0x00007fc0f46a77cb in QAbstractItemView::viewportEvent (this=0x89c910, event=0x7fff72973620) at itemviews/qabstractitemview.cpp:1589
#24 0x00007fc0f46e2113 in QTreeView::viewportEvent (this=0x89c910, event=0x7fff72973620) at itemviews/qtreeview.cpp:1250
#25 0x00007fc0f3817947 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#26 0x00007fc0f4181b9c in QApplicationPrivate::notify_helper (this=0x652670, receiver=0x8c6210, e=0x7fff72973620) at kernel/qapplication.cpp:4238
#27 0x00007fc0f41881ed in QApplication::notify (this=0x7fff72976630, receiver=0x8c6210, e=0x7fff72973620) at kernel/qapplication.cpp:4125
#28 0x00007fc0f4e65a76 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#29 0x00007fc0f381853c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#30 0x00007fc0f41df3bd in sendSpontaneousEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:218
#31 QWidgetPrivate::drawWidget (event=<value optimized out>, receiver=<value optimized out>) at kernel/qwidget.cpp:5322
#32 0x00007fc0f41e0048 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=0, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x8ba140) at kernel/qwidget.cpp:5435
#33 0x00007fc0f41df11a in QWidgetPrivate::drawWidget (this=0x930f50, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=
    0x8ba140) at kernel/qwidget.cpp:5371
#34 0x00007fc0f41e0048 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=1, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x8ba140) at kernel/qwidget.cpp:5435
#35 0x00007fc0f41dfe79 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=2, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x8ba140) at kernel/qwidget.cpp:5422
#36 0x00007fc0f41df11a in QWidgetPrivate::drawWidget (this=0x87aa80, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=
    0x8ba140) at kernel/qwidget.cpp:5371
#37 0x00007fc0f41e0048 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=6, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x8ba140) at kernel/qwidget.cpp:5435
#38 0x00007fc0f41df11a in QWidgetPrivate::drawWidget (this=0x7f95f0, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=
    0x8ba140) at kernel/qwidget.cpp:5371
#39 0x00007fc0f41e0048 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=3, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x8ba140) at kernel/qwidget.cpp:5435
#40 0x00007fc0f41df11a in QWidgetPrivate::drawWidget (this=0x7a3580, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=
    0x8ba140) at kernel/qwidget.cpp:5371
#41 0x00007fc0f41e0048 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=0, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x8ba140) at kernel/qwidget.cpp:5435
#42 0x00007fc0f41dfe79 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=1, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x8ba140) at kernel/qwidget.cpp:5422
#43 0x00007fc0f41df11a in QWidgetPrivate::drawWidget (this=0x7a3310, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=
    0x8ba140) at kernel/qwidget.cpp:5371
#44 0x00007fc0f41e0048 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=9, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x8ba140) at kernel/qwidget.cpp:5435
#45 0x00007fc0f41dfe79 in QWidgetPrivate::paintSiblingsRecursive (this=<value optimized out>, pdev=<value optimized out>, siblings=..., index=18, rgn=<value optimized out>, 
    offset=<value optimized out>, flags=4, sharedPainter=0x0, backingStore=0x8ba140) at kernel/qwidget.cpp:5422
#46 0x00007fc0f41df11a in QWidgetPrivate::drawWidget (this=0x756ab0, pdev=<value optimized out>, rgn=..., offset=<value optimized out>, flags=<value optimized out>, sharedPainter=0x0, backingStore=
    0x8ba140) at kernel/qwidget.cpp:5371
#47 0x00007fc0f43944c5 in QWidgetBackingStore::sync (this=0x8ba140) at painting/qbackingstore.cpp:1289
#48 0x00007fc0f41d0800 in QWidgetPrivate::syncBackingStore (this=0x756ab0) at kernel/qwidget.cpp:1662
#49 0x00007fc0f41d7525 in QWidget::event (this=0x7568c0, event=0x87cd40) at kernel/qwidget.cpp:8266
#50 0x00007fc0f4593f6b in QMainWindow::event (this=0x7568c0, event=0x87cd40) at widgets/qmainwindow.cpp:1434
#51 0x00007fc0f4f7ca83 in KXmlGuiWindow::event(QEvent*) () from /usr/lib64/libkdeui.so.5
#52 0x00007fc0f4181bcc in QApplicationPrivate::notify_helper (this=0x652670, receiver=0x7568c0, e=0x87cd40) at kernel/qapplication.cpp:4242
#53 0x00007fc0f41881ed in QApplication::notify (this=0x7fff72976630, receiver=0x7568c0, e=0x87cd40) at kernel/qapplication.cpp:4125
#54 0x00007fc0f4e65a76 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#55 0x00007fc0f381853c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#56 0x00007fc0f381acb7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib64/libQtCore.so.4
#57 0x00007fc0f3841fd3 in ?? () from /usr/lib64/libQtCore.so.4
#58 0x00007fc0ef9cfdde in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#59 0x00007fc0ef9d37a8 in ?? () from /usr/lib64/libglib-2.0.so.0
#60 0x00007fc0ef9d38d0 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#61 0x00007fc0f3841b13 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#62 0x00007fc0f422e94e in QGuiEventDispatcherGlib::processEvents (this=0x7fff7296ffc0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#63 0x00007fc0f3816e52 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#64 0x00007fc0f381722c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#65 0x00007fc0f381af7b in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#66 0x00000000004273ab in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kdenetwork-4.3.85/krdc/main.cpp:103

Possible duplicates by query: bug 185464.

Reported using DrKonqi
Comment 1 Tony Murray 2010-05-26 18:37:10 UTC
SVN commit 1130864 by murrant:

Workaround for a common crash when disconnecting a VNC connection.

This is included in KDE SC 4.5 Beta 2.  Please test and confirm.  The patch can be found here: 
http://reviewboard.kde.org/r/4041/diff/raw/

REVIEW: 4041
CCBUG: 220262
CCBUG: 220456
CCBUG: 220688
CCBUG: 229295
CCBUG: 229944
CCBUG: 230478
CCBUG: 231773
CCBUG: 232762
CCBUG: 233780


 M  +15 -16    mainwindow.cpp  
 M  +3 -3      vnc/vncclientthread.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1130864
Comment 2 Urs Wolfer 2010-05-30 17:27:34 UTC
*** Bug 238450 has been marked as a duplicate of this bug. ***
Comment 3 Urs Wolfer 2010-09-19 13:44:03 UTC
We have fixed some crashes in the VNC plugin recently. Can you still reproduce this issue with a recent version of KRDC (from KDE SC 4.5 or later)?
Comment 4 Urs Wolfer 2010-10-17 17:41:26 UTC
Closing as fixed since nobody can reproduce this crashes anymore with the fixes from KRDC 4.5.