Closed george-gca closed 7 months ago
I couldn't find this option
You need to switch to static binary to get it. Snap ecosystem doesn't provide crash reporting capabilities.
I sufered this too on snap and reproduced it with the static binary version downloaded from desktop.telegram.org
.
4.15.0
Crash ID while archiving several chats: 2c8c9dfe-b750-4abb-bd9bcf85-465056ac Crash ID while unarchiving one single chat: b6a22c08-46c7-4a78-3cd7e69b-e3fca015 Crash ID while unarchiving several chats: 805128d8-6b4b-4368-80128b84-376be452
$ lsb_release -a && uname -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 23.10
Release: 23.10
Codename: mantic
Linux setebos 6.5.0-21-generic #21-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 7 14:17:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
No relevant log printed prior to the crash.
When I tried to GDB the snap version I saw the backtrace goes from QtWayland to mesa and the iris dri (intel driver). But can't tell much as I lack symbols, so this might be misleading.
According to the backtrace it crashes inside GPU drivers when showing context menu. There's nothing really tdesktop could do about that, you seem to have buggy drivers. Perhaps you need to report this to mesa.
Thread 0 (crashed)
0 libc.so.6 + 0x17e1ca
1 libgallium_dri.so + 0x1771c6
2 libgallium_dri.so + 0x195650
3 libgallium_dri.so + 0x195330
4 libgallium_dri.so + 0x16cab0
5 libgallium_dri.so + 0x178690
6 libgallium_dri.so + 0x178740
7 libgallium_dri.so + 0x16eb90
8 libgallium_dri.so + 0x195650
9 libgallium_dri.so + 0x195330
10 libgallium_dri.so + 0x195240
11 libgallium_dri.so + 0x18555b
12 libgallium_dri.so + 0x185523
13 libgallium_dri.so + 0xc16be
14 libgallium_dri.so + 0xc51ef
15 libEGL_mesa.so.0 + 0x19a42
16 libEGL_mesa.so.0 + 0x1dccf
17 libEGL.so.1 + 0x5215
18 libEGL_mesa.so.0 + 0x1072d
19 Telegram!QtWaylandClient::QWaylandEglClientBufferIntegration::createPlatformOpenGLContext(QSurfaceFormat const&, QPlatformOpenGLContext*) const [qwaylandglcontext.cpp : 219 + 0x17]
20 Telegram!non-virtual thunk to QtWaylandClient::QWaylandXdgSurface::xdg_surface_configure(unsigned int) + 0x210
21 Telegram!QtWaylandClient::QWaylandIntegration::createPlatformOpenGLContext(QOpenGLContext*) const [qwaylandintegration.cpp : 149 + 0xc]
22 Telegram!QOpenGLContext::create() [qopenglcontext.cpp : 355 + 0x9]
23 Telegram!QRhiGles2InitParams::newFallbackSurface(QSurfaceFormat const&) [qrhigles2.cpp : 544 + 0x8]
24 Telegram!qEnvironmentVariableIntValue(char const*, bool*) [mutex : 738 + 0x8]
25 Telegram!QBackingStoreRhiSupport::create() [qbackingstorerhisupport.cpp : 74 + 0x5]
26 Telegram!operator delete(void*, unsigned long) [wrappers_cpp.cpp : 72 + 0x5]
27 Telegram!QSurfaceFormat::operator=(QSurfaceFormat const&) [qsurfaceformat.cpp : 244 + 0x5]
28 Telegram!QWidget::create(unsigned long long, bool, bool) [qplatformbackingstore.cpp : 367 + 0x14]
29 Telegram!calloc [wrappers_c_checks.h : 50 + 0x1]
30 Telegram!QObjectPrivate::addConnection(int, QObjectPrivate::Connection*) [qobject_p_p.h : 188 + 0x9]
31 Telegram!Ui::PopupMenu::prepareGeometryFor(QPoint const&, Ui::PopupMenu*) [qwidget.cpp : 2452 + 0x9]
32 Telegram!QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, int, int const*, QMetaObject const*) [qobject.cpp : 5170 + 0x3]
33 Telegram!QObject::connectImpl(QObject const*, void**, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) [clone .constprop.0] [qobject.cpp : 5082 + 0x21]
34 Telegram!Ui::PopupMenu::popup(QPoint const&) [popup_menu.cpp : 956 + 0xd]
35 Telegram!Dialogs::InnerWidget::contextMenuEvent(QContextMenuEvent*) [dialogs_inner_widget.cpp : 2361 + 0x5]
36 Telegram!QWidget::event(QEvent*) [qwidget.cpp : 8997 + 0xf]
37 Telegram!QWidget::event(QEvent*) [qwidget.cpp : 9186 + 0xf]
38 Telegram!QPointingDevice::primaryPointingDevice(QString const&) [qpointingdevice.cpp : 295 + 0x5]
39 Telegram!QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) [qcoreapplication.cpp : 1253 + 0xc]
40 Telegram!QApplicationPrivate::notify_helper(QObject*, QEvent*) [qapplication.cpp : 3296 + 0xc]
41 Telegram!QApplication::notify(QObject*, QEvent*) [qapplication.cpp : 2923 + 0x8]
42 Telegram!Core::Sandbox::decrementEventNestingLevel() [sandbox.cpp : 570 + 0x8]
43 Telegram!Core::Sandbox::notify(QObject*, QEvent*) [sandbox.h : 31 + 0x8]
44 Telegram!QInputDevice::devices() [qmutex.h : 250 + 0xc]
45 Telegram!Core::Sandbox::notify(QObject*, QEvent*) [sandbox.cpp : 590 + 0xe]
46 Telegram!QCoreApplication::notifyInternal2(QObject*, QEvent*) [qcoreapplication.cpp : 1121 + 0x13]
47 Telegram!QContextMenuEvent::QContextMenuEvent(QContextMenuEvent::Reason, QPoint const&, QPoint const&, QFlags<Qt::KeyboardModifier>) [qstring.h : 1169 + 0x5]
48 Telegram!QWidgetWindow::handleMouseEvent(QMouseEvent*) [qwidgetwindow.cpp : 635 + 0x12]
49 Telegram!rpl::lifetime::destroy() [lifetime.h : 89 + 0x9]
50 Telegram!QWidgetWindow::event(QEvent*) [qwidgetwindow.cpp : 241 + 0x8]
51 Telegram!QtPrivate::equalStrings(QStringView, QStringView) [qstring.cpp : 1294 + 0x5]
52 Telegram!operator==(QString const&, QString const&) [qstring.h : 695 + 0x15]
53 Telegram!Platform::TrayEventFilter::eventFilter(QObject*, QEvent*) [qstring.h : 1169 + 0x5]
54 Telegram!base::details::EventFilter::eventFilter(QObject*, QEvent*) [std_function.h : 591 + 0x3]
55 Telegram!QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) [qcoreapplication.cpp : 1253 + 0xc]
56 Telegram!QApplicationPrivate::notify_helper(QObject*, QEvent*) [qapplication.cpp : 3296 + 0xc]
57 Telegram!Core::Sandbox::notify(QObject*, QEvent*) [sandbox.cpp : 590 + 0xe]
58 Telegram!QArrayDataPointer<QEventPoint>::reallocateAndGrow(QArrayData::GrowthPosition, long long, QArrayDataPointer<QEventPoint>*) [qarraydatapointer.h : 244 + 0x5]
59 Telegram!QCoreApplication::notifyInternal2(QObject*, QEvent*) [qcoreapplication.cpp : 1121 + 0x13]
60 Telegram!QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) [qcoreapplication.cpp : 1553 + 0x5]
61 Telegram!QWaitCondition::wakeOne() [qwaitcondition_unix.cpp : 150 + 0x8]
62 Telegram!QtWaylandClient::QWaylandDisplay::flushRequests() [qwaylanddisplay.cpp : 127 + 0x5]
63 Telegram!QObject::event(QEvent*) [qatomic_cxx11.h : 201 + 0x5]
64 Telegram!Core::Sandbox::notify(QObject*, QEvent*) [sandbox.h : 31 + 0x8]
65 Telegram!QCoreApplication::notifyInternal2(QObject*, QEvent*) [qcoreapplication.cpp : 1121 + 0x13]
66 Telegram!std::unique_lock<QMutex>::unlock() [unique_lock.h : 195 + 0x5]
67 Telegram!QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) [unique_lock.h : 104 + 0x5]
68 Telegram!QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) [qwindowsysteminterface.cpp : 1109 + 0x5]
69 Telegram!userEventSourceDispatch [qeventdispatcher_glib.cpp : 38 + 0x5]
70 libglib-2.0.so.0 + 0x5ab2c
71 libglib-2.0.so.0 + 0xb646f
72 libglib-2.0.so.0 + 0x58d20
73 Telegram!QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) [qeventdispatcher_glib.cpp : 393 + 0xf]
74 Telegram!<name omitted> [qeventloop.cpp : 100 + 0x3]
75 Telegram!QEventLoop::QEventLoop(QObject*) [qeventloop.cpp : 64 + 0x5]
76 Telegram!Core::Sandbox::start() [qcoreapplication.cpp : 1442 + 0x5]
77 Telegram!QObjectPrivate::moveToThread_helper() [qobject.cpp : 1738 + 0x8]
78 Telegram!Core::Launcher::executeApplication() [launcher.cpp : 582 + 0xc]
79 Telegram!scudo::Allocator<scudo::DefaultConfig, &malloc_postinit>::deallocate(void*, scudo::Chunk::Origin, unsigned long, unsigned long) [combined.h : 600 + 0xf]
80 Telegram!Platform::start() [qbytearray.h : 521 + 0xc]
It looks like a combination of QT Wayland and Intel driver, but I can't reproduce it on other QT Apps nor have a full trace to investigate and submit an upstream issue. I'll try to do it.
In the snap version, the mesa driver and QT come bundled. In the static binary, what comes bundled? Just QT? or also mesa?
In the snap version, the mesa driver and QT come bundled. In the static binary, what comes bundled? Just QT? or also mesa?
Just Qt, yes. Note also that QtWidgets apps using OpenGL aren't common, in fact I don't know any other QtWidgets application using OpenGL (and especially for context menus). Maybe VLC but it's highly likely that it's doing OpenGL in an embedded subsurface (just for the video) using low-level APIs rather than directly using Qt abstractions like tdesktop is doing.
Well, in another laptop with also Intel integrated graphics but with Arch Linux and their package telegram-desktop (they don't use the official build, they build it themselves) doesn't crash.
Qt version in Arch is the same as the one of the official static binary so I guess there is a bug in versions of mesa/gallium/iris that Ubuntu ships that is already fixed in newer versions.
In any case to be extra sure I'll try with Ubuntu in that laptop and maybe with Arch in the laptop that crashes.
In fact the official static binary also works, however I've just noticed telegram spams this in the logs:
qt.qpa.wayland: Creating a popup with a parent, QWidgetWindow(0x72922cb21390, name="TWidgetClassWindow") which does not match the current topmost grabbing popup, QWidgetWindow(0x72922d096b10, name="TWidgetClassWindow") With some shell surface protocols, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly. Please fix the transient parent of the popup.
qt.qpa.wayland: Creating a popup with a parent, QWidgetWindow(0x72922cb21390, name="TWidgetClassWindow") which does not match the current topmost grabbing popup, QWidgetWindow(0x72922d090b10, name="TWidgetClassWindow") With some shell surface protocols, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly. Please fix the transient parent of the popup.
qt.qpa.wayland: Creating a popup with a parent, QWidgetWindow(0x72922cb21390, name="TWidgetClassWindow") which does not match the current topmost grabbing popup, QWidgetWindow(0x72922d090b10, name="TWidgetClassWindow") With some shell surface protocols, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly. Please fix the transient parent of the popup.
qt.qpa.wayland: Creating a popup with a parent, QWidgetWindow(0x72922cb21390, name="TWidgetClassWindow") which does not match the current topmost grabbing popup, QWidgetWindow(0x72922d0a0890, name="TWidgetClassWindow") With some shell surface protocols, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly. Please fix the transient parent of the popup.
qt.qpa.wayland: Creating a popup with a parent, QWidgetWindow(0x72922cb21390, name="TWidgetClassWindow") which does not match the current topmost grabbing popup, QWidgetWindow(0x72922d0a0890, name="TWidgetClassWindow") With some shell surface protocols, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly. Please fix the transient parent of the popup.
qt.qpa.wayland: Creating a popup with a parent, QWidgetWindow(0x72922cb21390, name="TWidgetClassWindow") which does not match the current topmost grabbing popup, QWidgetWindow(0x72922d0a1690, name="TWidgetClassWindow") With some shell surface protocols, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly. Please fix the transient parent of the popup.
qt.qpa.wayland: Creating a popup with a parent, QWidgetWindow(0x72922cb21390, name="TWidgetClassWindow") which does not match the current topmost grabbing popup, QWidgetWindow(0x72922d0a1690, name="TWidgetClassWindow") With some shell surface protocols, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly. Please fix the transient parent of the popup.
qt.qpa.wayland: Creating a popup with a parent, QWidgetWindow(0x72922cb21390, name="TWidgetClassWindow") which does not match the current topmost grabbing popup, QWidgetWindow(0x72922d0a7e90, name="TWidgetClassWindow") With some shell surface protocols, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly. Please fix the transient parent of the popup.
qt.qpa.wayland: Creating a popup with a parent, QWidgetWindow(0x72922cb21390, name="TWidgetClassWindow") which does not match the current topmost grabbing popup, QWidgetWindow(0x72922d0a7e90, name="TWidgetClassWindow") With some shell surface protocols, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly. Please fix the transient parent of the popup.
This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.
Steps to reproduce
Expected behaviour
Not crash
Actual behaviour
Crash
Operating system
Ubuntu 23.10
Version of Telegram Desktop
4.15
Installation source
Snap
Crash ID
I couldn't find this option
Logs