Bug 349337

Summary: Crash when pasting from a closed client
Product: [Frameworks and Libraries] kwayland Reporter: Martin Flöser <mgraesslin>
Component: serverAssignee: Martin Flöser <mgraesslin>
Status: RESOLVED WORKSFORME    
Severity: crash    
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Martin Flöser 2015-06-18 15:11:18 UTC
Program received signal SIGSEGV, Segmentation fault.
0x00007fffea50e8e9 in wl_resource_post_event (resource=0x0, opcode=1) at ../src/wayland-server.c:155
155     ../src/wayland-server.c: No such file or directory.
(gdb) bt
#0  0x00007fffea50e8e9 in wl_resource_post_event (resource=0x0, opcode=1) at ../src/wayland-server.c:155
#1  0x00007ffff1a0d61c in wl_data_source_send_send (resource_=0x0, mime_type=0x13b0898 "text/plain", fd=42) at /usr/include/wayland-server-protocol.h:656
#2  0x00007ffff1a0d99f in KWayland::Server::DataSourceInterface::requestData (this=0x131c2c0, mimeType=..., fd=42)
    at /home/martin/src/kf5/kde/workspace/kwayland/src/server/datasource_interface.cpp:104
#3  0x00007ffff1a0cc31 in KWayland::Server::DataOfferInterface::Private::receive (this=0x13220f0, mimeType=..., fd=42)
    at /home/martin/src/kf5/kde/workspace/kwayland/src/server/dataoffer_interface.cpp:92
#4  0x00007ffff1a0cbf6 in KWayland::Server::DataOfferInterface::Private::receiveCallback (client=0x1059bd0, resource=0x1323da0, mimeType=0x11830cc "text/plain", 
    fd=42) at /home/martin/src/kf5/kde/workspace/kwayland/src/server/dataoffer_interface.cpp:87
#5  0x00007fffe3c1ddc0 in ffi_call_unix64 () from /usr/lib/x86_64-linux-gnu/libffi.so.6
#6  0x00007fffe3c1d828 in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.6
#7  0x00007fffea512dfc in wl_closure_invoke (closure=closure@entry=0x1182ff0, flags=flags@entry=2, target=target@entry=0x1323da0, opcode=opcode@entry=1, 
    data=data@entry=0x1059bd0) at ../src/connection.c:942
#8  0x00007fffea50f1e6 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x1059bd0) at ../src/wayland-server.c:334
#9  0x00007fffea510fe2 in wl_event_loop_dispatch (loop=0x625520, timeout=<optimized out>) at ../src/event-loop.c:419
#10 0x00007ffff1a0e897 in KWayland::Server::Display::Private::dispatch (this=0x6223a0) at /home/martin/src/kf5/kde/workspace/kwayland/src/server/display.cpp:113
#11 0x00007ffff1a0e529 in KWayland::Server::Display::Private::<lambda()>::operator()(void) const (__closure=0x7fffffffc7c0)
    at /home/martin/src/kf5/kde/workspace/kwayland/src/server/display.cpp:84
#12 0x00007ffff1a116ad in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWayland::Server::Display::Private::installSocketNotifier()::<lambda()> >::call(KWayland::Server::Display::Private::<lambda()>, void **) (f=..., arg=0x7fffffffca20) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:494
#13 0x00007ffff1a1142d in QtPrivate::Functor<KWayland::Server::Display::Private::installSocketNotifier()::<lambda()>, 0>::call<QtPrivate::List<>, void>(KWayland::Server::Display::Private::<lambda()> &, void *, void **) (f=..., arg=0x7fffffffca20) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:551
#14 0x00007ffff1a109d3 in QtPrivate::QFunctorSlotObject<KWayland::Server::Display::Private::installSocketNotifier()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x625800, r=0x622a10, a=0x7fffffffca20, ret=0x0)
    at /opt/qt5/include/QtCore/qobject_impl.h:192
#15 0x00007fffef15dc47 in QtPrivate::QSlotObjectBase::call (this=0x625800, r=0x622a10, a=0x7fffffffca20)
    at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:124
#16 0x00007fffef15ad28 in QMetaObject::activate (sender=0x6226b0, signalOffset=3, local_signal_index=0, argv=0x7fffffffca20) at kernel/qobject.cpp:3702
#17 0x00007fffef15a640 in QMetaObject::activate (sender=0x6226b0, m=0x7fffef419340 <QSocketNotifier::staticMetaObject>, local_signal_index=0, argv=0x7fffffffca20)
    at kernel/qobject.cpp:3582
#18 0x00007fffef1ebdf6 in QSocketNotifier::activated (this=0x6226b0, _t1=4) at .moc/moc_qsocketnotifier.cpp:133
#19 0x00007fffef165be6 in QSocketNotifier::event (this=0x6226b0, e=0x7fffffffd320) at kernel/qsocketnotifier.cpp:296
#20 0x00007fffefc5f67c in QApplicationPrivate::notify_helper (this=0x62bb60, receiver=0x6226b0, e=0x7fffffffd320) at kernel/qapplication.cpp:3720
#21 0x00007fffefc5cdf8 in QApplication::notify (this=0x7fffffffd750, receiver=0x6226b0, e=0x7fffffffd320) at kernel/qapplication.cpp:3164
#22 0x00007ffff7741b47 in KWin::Application::notify (this=0x7fffffffd750, o=0x6226b0, e=0x7fffffffd320) at /home/martin/src/kf5/kde/workspace/kwin/main.cpp:246
#23 0x00007ffff7bcd8d4 in KWin::ApplicationWayland::notify (this=0x7fffffffd750, o=0x6226b0, e=0x7fffffffd320)
    at /home/martin/src/kf5/kde/workspace/kwin/main_wayland.cpp:277
#24 0x00007fffef1179dc in QCoreApplication::notifyInternal (this=0x7fffffffd750, receiver=0x6226b0, event=0x7fffffffd320) at kernel/qcoreapplication.cpp:935
#25 0x00007fffef11b63d in QCoreApplication::sendEvent (receiver=0x6226b0, event=0x7fffffffd320) at kernel/qcoreapplication.h:228
#26 0x00007fffef18d068 in QEventDispatcherUNIX::activateSocketNotifiers (this=0x61f0c0) at kernel/qeventdispatcher_unix.cpp:565
#27 0x00007fffef18bcb0 in QEventDispatcherUNIXPrivate::doSelect (this=0x624930, flags=..., timeout=0x7fffffffd510) at kernel/qeventdispatcher_unix.cpp:264
#28 0x00007fffef18d265 in QEventDispatcherUNIX::processEvents (this=0x61f0c0, flags=...) at kernel/qeventdispatcher_unix.cpp:607
#29 0x00007ffff7bce31f in KWin::EventDispatcher::processEvents (this=0x61f0c0, flags=...) at /home/martin/src/kf5/kde/workspace/kwin/main_wayland.cpp:378
#30 0x00007fffef114680 in QEventLoop::processEvents (this=0x7fffffffd680, flags=...) at kernel/qeventloop.cpp:128
#31 0x00007fffef114959 in QEventLoop::exec (this=0x7fffffffd680, flags=...) at kernel/qeventloop.cpp:204
#32 0x00007fffef1180b6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#33 0x00007fffef51ad9e in QGuiApplication::exec () at kernel/qguiapplication.cpp:1507

Reproducible: Always

Steps to Reproduce:
1. Open two windows (e.g. kate and kwrite)
2. Type text and copy it
3. Close window
4. paste in other window

Actual Results:  
Compositor crashes

Expected Results:  
Text get pasted or at least no crash
Comment 1 Martin Flöser 2017-10-21 11:17:27 UTC
Cannot reproduce anymore.