Bug 323107 - kscreen crashes
Summary: kscreen crashes
Status: RESOLVED FIXED
Alias: None
Product: KScreen
Classification: Plasma
Component: libkscreen (show other bugs)
Version: 1.0.1
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Alex Fiestas
URL:
Keywords:
: 323764 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-08-02 13:46 UTC by Sandro Mani
Modified: 2013-09-09 16:44 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 1.0.2


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sandro Mani 2013-08-02 13:46:44 UTC
Application: systemsettings (4.10.97)
KDE Platform Version: 4.10.97
Qt Version: 4.8.5
Operating System: Linux 3.9.9-302.fc19.x86_64 x86_64
Distribution (Platform): Fedora RPMs

-- Information about the crash:
- What I was doing when the application crashed:
- Connected laptop to external 1920x1080 display, disabled internal display
- Disconnected external display, but did not press Fn+F7 (the toggle displays hotkey) Note: the ati driver (using a RV620 gpu) does not seem to react automatically when displays are removed.
- Connected another external display to the laptop (this time 1680x1050). This display then ran at interpolated 1920x1080
- Tried correcting the display setup with the display configuration UI, any change followed by apply would crash system settings.

-- Backtrace:
Application: System Settings (systemsettings), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
81	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f732e7d18c0 (LWP 10610))]

Thread 2 (Thread 0x7f7306d2c700 (LWP 10611)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f7327a8f08b in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f7327d8ef00 <QTWTF::pageheap_memory>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#2  0x00007f7327a8f0c9 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#3  0x00007f732adff0f3 in start_thread (arg=0x7f7306d2c700) at pthread_create.c:309
#4  0x00007f732a3035ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f732e7d18c0 (LWP 10610)):
[KCrash Handler]
#6  XRandRMode::size (this=0x0) at /usr/src/debug/libkscreen-1.0.1/backends/xrandr/xrandrmode.cpp:53
#7  0x00007f7306d376c2 in XRandRConfig::applyKScreenConfig (this=0x2022190, config=<optimized out>) at /usr/src/debug/libkscreen-1.0.1/backends/xrandr/xrandrconfig.cpp:168
#8  0x00007f730716cf7f in KScreen::Config::setConfig (config=0x2055f50) at /usr/src/debug/libkscreen-1.0.1/src/config.cpp:66
#9  0x00007f73073855d9 in KCMKScreen::save (this=0x2026c90) at /usr/src/debug/kscreen-1.0.1/kcm/src/kcm_kscreen.cpp:213
#10 0x00007f732d9e5927 in KCModuleProxy::save (this=<optimized out>) at /usr/src/debug/kdelibs-4.10.97/kutils/kcmoduleproxy.cpp:280
#11 0x00007f732d7bb2a3 in ModuleView::moduleSave (this=<optimized out>, module=<optimized out>) at /usr/src/debug/kde-workspace-4.10.97/systemsettings/core/ModuleView.cpp:319
#12 0x00007f732d7bd5fa in ModuleView::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=0x7fffd8a7f2f0, _c=<optimized out>) at /usr/src/debug/kde-workspace-4.10.97/x86_64-redhat-linux-gnu/systemsettings/core/ModuleView.moc:71
#13 0x00007f732b1adfa8 in QMetaObject::activate (sender=sender@entry=0x1dd7dd0, m=m@entry=0x7f732c92be20 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffd8a7f2f0) at kernel/qobject.cpp:3547
#14 0x00007f732c4afb92 in QAbstractButton::clicked (this=this@entry=0x1dd7dd0, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:219
#15 0x00007f732c1f3f83 in QAbstractButtonPrivate::emitClicked (this=this@entry=0x1e3f500) at widgets/qabstractbutton.cpp:548
#16 0x00007f732c1f5337 in QAbstractButtonPrivate::click (this=this@entry=0x1e3f500) at widgets/qabstractbutton.cpp:541
#17 0x00007f732c1f543c in QAbstractButton::mouseReleaseEvent (this=0x1dd7dd0, e=0x7fffd8a7f850) at widgets/qabstractbutton.cpp:1123
#18 0x00007f732be80d1a in QWidget::event (this=0x1dd7dd0, event=0x7fffd8a7f850) at kernel/qwidget.cpp:8376
#19 0x00007f732be2ddac in QApplicationPrivate::notify_helper (this=0x1b43280, receiver=0x1dd7dd0, e=0x7fffd8a7f850) at kernel/qapplication.cpp:4562
#20 0x00007f732be34899 in QApplication::notify (this=this@entry=0x7fffd8a800c0, receiver=receiver@entry=0x1dd7dd0, e=e@entry=0x7fffd8a7f850) at kernel/qapplication.cpp:4105
#21 0x00007f732cde485a in KApplication::notify (this=0x7fffd8a800c0, receiver=0x1dd7dd0, event=0x7fffd8a7f850) at /usr/src/debug/kdelibs-4.10.97/kdeui/kernel/kapplication.cpp:311
#22 0x00007f732b1995ed in QCoreApplication::notifyInternal (this=0x7fffd8a800c0, receiver=0x1dd7dd0, event=0x7fffd8a7f850) at kernel/qcoreapplication.cpp:949
#23 0x00007f732be33fc7 in QApplicationPrivate::sendMouseEvent (receiver=0x1dd7dd0, event=0x7fffd8a7f850, alienWidget=0x1dd7dd0, nativeWidget=0x1ccf090, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true) at ../../src/corelib/kernel/qcoreapplication.h:231
#24 0x00007f732bea977b in QETWidget::translateMouseEvent (this=0x1ccf090, event=<optimized out>) at kernel/qapplication_x11.cpp:4538
#25 0x00007f732bea81ec in QApplication::x11ProcessEvent (this=0x7fffd8a800c0, event=event@entry=0x7fffd8a7fbc0) at kernel/qapplication_x11.cpp:3661
#26 0x00007f732becfbe4 in x11EventSourceDispatch (s=s@entry=0x1b34270, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:148
#27 0x00007f73214de006 in g_main_dispatch (context=0x1b33b40) at gmain.c:3065
#28 g_main_context_dispatch (context=context@entry=0x1b33b40) at gmain.c:3641
#29 0x00007f73214de388 in g_main_context_iterate (context=context@entry=0x1b33b40, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3712
#30 0x00007f73214de43c in g_main_context_iteration (context=0x1b33b40, may_block=1) at gmain.c:3773
#31 0x00007f732b1c8185 in QEventDispatcherGlib::processEvents (this=0x1b30140, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#32 0x00007f732becfd66 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:207
#33 0x00007f732b19812f in QEventLoop::processEvents (this=this@entry=0x7fffd8a7ffb0, flags=...) at kernel/qeventloop.cpp:149
#34 0x00007f732b19847d in QEventLoop::exec (this=this@entry=0x7fffd8a7ffb0, flags=...) at kernel/qeventloop.cpp:204
#35 0x00007f732b19d9bb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
#36 0x00007f732be2c41c in QApplication::exec () at kernel/qapplication.cpp:3823
#37 0x000000000040abde in main (argc=5, argv=0x7fffd8a80208) at /usr/src/debug/kde-workspace-4.10.97/systemsettings/app/main.cpp:49

Reported using DrKonqi
Comment 1 Alex Fiestas 2013-08-02 15:57:09 UTC
Fixed in 1.0.1

Please, reopen if it still happens on 1.0.1

Thanks!
Comment 2 Sandro Mani 2013-08-02 16:08:51 UTC
I'm using kscreen-1.0.1-1.fc20.x86_64 and libkscreen-1.0.1-1.fc20.x86_64. Although I didn't restart the system or login/logout after the update, I take the binaries now in memory should be the ones of version 1.0.1 since kscreen crashed and restarted. (Cannot logout/reboot right now, running some lengthy tasks).
Comment 3 Sandro Mani 2013-08-02 16:12:52 UTC
Actually I'd say also the backtrace I submitted was of version 1.0.1, looking at the path of the source files (i.e. /usr/src/debug/libkscreen-1.0.1/backends/xrandr/xrandrconfig.cpp). Reopening therefore.
Comment 4 Daniel Vrátil 2013-08-02 16:20:42 UTC
The symbol were resolved from libkscreen-1.0.1 sources, but you were running 1.0.0 from memory. The code would have to crash on an assert 2 line earlier if you were running 1.0.1.

To make sure you are running 1.0.1, restart kded4 (killall kded4 && kstart kded4).
Comment 5 Sandro Mani 2013-08-02 16:29:17 UTC
Öh, crashes even after killing kded4 and restarting.
Comment 6 Daniel Vrátil 2013-08-02 16:30:15 UTC
Fair enough :)
Comment 7 Daniel Vrátil 2013-08-20 11:25:00 UTC
*** Bug 323764 has been marked as a duplicate of this bug. ***
Comment 8 Daniel Vrátil 2013-09-09 16:44:06 UTC
Git commit 1d9ac012e857036bb8814cc84c9cf10bb57ca40c by Dan Vrátil.
Committed on 09/09/2013 at 16:43.
Pushed by dvratil into branch 'master'.

Refresh modes when currentModeId points to unknown mode

Sometimes drivers insert or remove modes, so when currentModeId points to a mode
that we don't have cached, we must refresh the local cache.

This also fixes a crash that occured when currentModeId would be pointing to a
mode that we don't have (even after refreshing modes)

REVIEW: 112604
Related: bug 324625
FIXED-IN: 1.0.2

M  +43   -20   backends/xrandr/xrandrconfig.cpp
M  +15   -0    backends/xrandr/xrandrmode.cpp
M  +4    -0    backends/xrandr/xrandrmode.h
M  +5    -0    backends/xrandr/xrandroutput.cpp
M  +3    -1    backends/xrandr/xrandroutput.h

http://commits.kde.org/libkscreen/1d9ac012e857036bb8814cc84c9cf10bb57ca40c