#1008862 kwin-x11: lots of valgrind errors

Package:
kwin-x11
Source:
kwin
Description:
KDE window manager, X11 version
Submitter:
Russell Coker
Date:
2022-04-04 03:24:03 UTC
Severity:
normal
#1008862#5
Date:
2022-04-03 04:37:09 UTC
From:
To:
When I run valgrind on kwin_x11 with no special parameters to valgrind I see
many errors.  Here is a sample:

==937241== Syscall param writev(vector[...]) points to uninitialised byte(s)
==937241==    at 0x638DDDD: __writev (writev.c:26)
==937241==    by 0x638DDDD: writev (writev.c:24)
==937241==    by 0x60ADFB8: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==937241==    by 0x60AE790: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==937241==    by 0x60AFFE6: xcb_request_check (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==937241==    by 0x110A3A: operator() (main_x11.cpp:239)
==937241==    by 0x110A3A: call (qobjectdefs_impl.h:146)
==937241==    by 0x110A3A: call<QtPrivate::List<>, void> (qobjectdefs_impl.h:256)
==937241==    by 0x110A3A: QtPrivate::QFunctorSlotObject<KWin::ApplicationX11::performStartup()::{lambda()#2}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:443)
==937241==    by 0x5E3A5A5: call (qobjectdefs_impl.h:398)
==937241==    by 0x5E3A5A5: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3886)
==937241==    by 0x4DDBAD2: ??? (in /usr/lib/x86_64-linux-gnu/libKF5WindowSystem.so.5.78.0)
==937241==    by 0x4DDC304: KSelectionOwner::filterEvent(void*) (in /usr/lib/x86_64-linux-gnu/libKF5WindowSystem.so.5.78.0)
==937241==    by 0x5E01516: QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (qabstracteventdispatcher.cpp:495)
==937241==    by 0xC6807C0: QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (qxcbconnection.cpp:536)
==937241==    by 0xC681CD5: QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qxcbconnection.cpp:1003)
==937241==    by 0xC6A4B8B: QXcbUnixEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qxcbeventdispatcher.cpp:61)
==937241==  Address 0xbfc374a is 4,538 bytes inside a block of size 21,168 alloc'd
==937241==    at 0x483AB65: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==937241==    by 0x60AD980: xcb_connect_to_fd (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==937241==    by 0x60B216A: xcb_connect_to_display_with_auth_info (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==937241==    by 0x7D9A241: _XConnectXCB (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==937241==    by 0x7D8AA24: XOpenDisplay (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==937241==    by 0xC6A6156: QXcbBasicConnection::QXcbBasicConnection(char const*) (qxcbconnection_basic.cpp:114)
==937241==    by 0xC6821C1: QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*) (qxcbconnection.cpp:91)
==937241==    by 0xC685112: QXcbIntegration::QXcbIntegration(QStringList const&, int&, char**) (qxcbintegration.cpp:197)
==937241==    by 0x484946E: create (qxcbmain.cpp:56)
==937241==    by 0x484946E: QXcbIntegrationPlugin::create(QString const&, QStringList const&, int&, char**) (qxcbmain.cpp:53)
==937241==    by 0x55C58FB: init_platform (qguiapplication.cpp:1223)
==937241==    by 0x55C58FB: QGuiApplicationPrivate::createPlatformIntegration() (qguiapplication.cpp:1481)
==937241==    by 0x55C6D4F: QGuiApplicationPrivate::createEventDispatcher() (qguiapplication.cpp:1498)
==937241==    by 0x5E0AA55: QCoreApplicationPrivate::init() (qcoreapplication.cpp:834)
==937241==
==937241== Conditional jump or move depends on uninitialised value(s)
==937241==    at 0x49722AD: KWin::Workspace::allowClientActivation(KWin::AbstractClient const*, unsigned int, bool, bool) (activation.cpp:554)
==937241==    by 0x4ABA026: KWin::X11Client::manage(unsigned int, bool) (x11client.cpp:813)
==937241==    by 0x4A988DB: KWin::Workspace::createClient(unsigned int, bool) (workspace.cpp:557)
==937241==    by 0x4A9DFAB: KWin::Workspace::initializeX11() [clone .part.0] (workspace.cpp:413)
==937241==    by 0x4A9EE61: KWin::Workspace::init() (workspace.cpp:299)
==937241==    by 0x4A9F732: KWin::Workspace::Workspace() (workspace.cpp:205)
==937241==    by 0x49FBF6F: KWin::Application::createWorkspace() (main.cpp:269)
==937241==    by 0x11130A: operator() (main_x11.cpp:250)
==937241==    by 0x11130A: call (qobjectdefs_impl.h:146)
==937241==    by 0x11130A: call<QtPrivate::List<>, void> (qobjectdefs_impl.h:256)
==937241==    by 0x11130A: QtPrivate::QFunctorSlotObject<KWin::ApplicationX11::performStartup()::{lambda()#2}::operator()() const::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:443)
==937241==    by 0x5E3A5A5: call (qobjectdefs_impl.h:398)
==937241==    by 0x5E3A5A5: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3886)
==937241==    by 0x110BAB: operator() (main_x11.cpp:265)
==937241==    by 0x110BAB: call (qobjectdefs_impl.h:146)

#1008862#10
Date:
2022-04-03 10:41:14 UTC
From:
To:
I've attached valgrind output from starting kwin on Unstable, it got this
error just from the initialisation phase.

#1008862#15
Date:
2022-04-03 15:54:05 UTC
From:
To:
Hi Russell,

I'm not quite sure what you'd expect a maintainer to do about this.

If you think this is a bug, then I suggest you report it upstream.

#1008862#20
Date:
2022-04-04 03:21:31 UTC
From:
To:
The same things that I've just been doing, reading the source and trying to
figure out where the bug is.  However I don't have any experience in the X
coding which limits my ability to recognise where the problem is.  I was
hoping that you or someone else who follows the bug report would have the
relevant experience to be able to solve it easily.

I think it may be related to the kwin SEGVs I've been experiencing on 2
different systems with different configurations.  The same SEGVs happen with
Wayland but in that case it takes the whole session down and is therefore a
more serious problem.

I'll report it upstream too.