using arch-linux currently zeal stopped working
$ zeal
qt5ct: using qt5ct plugin
zeal.core.applicationsingleton: Singleton ID: s2nnkKhrreB1s5P0GVM88n0vsVn3MyLXd9Vdsi3m8rk
zeal.core.applicationsingleton: Starting as a primary instance. (PID: 13305)
Segmentation fault (core dumped)
$ coredumpctl gdb zeal reveals the following:
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `zeal'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f6d248ea0ce in xcb_send_request_with_fds64 () from /usr/lib/libxcb.so.1
[Current thread is 1 (Thread 0x7f6d1b692880 (LWP 13305))]
Traceback (most recent call last):
File "/usr/share/gdb/auto-load/usr/lib/libgstreamer-1.0.so.0.1600.0-gdb.py", line 9, in <module>
from gst_gdb import register
ModuleNotFoundError: No module named 'gst_gdb'
gstreamer is installed with the latest arch version.
on x11 everything works fine, but on wayland it crashes
unsure if compiling from source fixes it
The Arch Linux package works fine for me on Wayland.
I confirm it crashes for me in ArchLinux: at least in swaywm and plasma+wayland. No issues in X11. I have attached the crashlog generated in plasma.
zeal-20190619-134926.kcrash.txt
Crashes under Fedora 30 too (zeal version 0.6.1). Here's full backtrace from current git master:
(gdb) bt full
#0 0x00007ffff3b00dc8 in xcb_send_request_with_fds64 (c=0x0, flags=flags@entry=1, vector=vector@entry=0x7fffffffbe70, req=req@entry=0x7ffff3b14a70 <xcb_req>, num_fds=num_fds@entry=0, fds=fds@entry=0x0)
at xcb_out.c:223
request = <optimized out>
prefix = {3, 48}
veclen = <optimized out>
workaround = <optimized out>
__PRETTY_FUNCTION__ = "xcb_send_request_with_fds64"
#1 0x00007ffff3b0132f in xcb_send_request64 (c=<optimized out>, flags=flags@entry=1, vector=vector@entry=0x7fffffffbe70, req=req@entry=0x7ffff3b14a70 <xcb_req>) at xcb_out.c:349
#2 0x00007ffff3b0133d in xcb_send_request (c=<optimized out>, flags=flags@entry=1, vector=vector@entry=0x7fffffffbe70, req=req@entry=0x7ffff3b14a70 <xcb_req>) at xcb_out.c:355
#3 0x00007ffff3b090fd in xcb_grab_key_checked
(c=<optimized out>, owner_events=<optimized out>, grab_window=<optimized out>, modifiers=<optimized out>, key=<optimized out>, pointer_mode=<optimized out>, keyboard_mode=1 '\001') at xproto.c:4608
xcb_req = {count = 2, ext = 0x0, opcode = 33 '!', isvoid = 1 '\001'}
xcb_parts = {{iov_base = 0x7ffff3b272a0, iov_len = 16088625659521747200}, {iov_base = 0x561f10, iov_len = 4294967295}, {iov_base = 0x7fffffffbe40, iov_len = 16}, {iov_base = 0x0, iov_len = 0}}
xcb_ret = <optimized out>
xcb_out = {major_opcode = 80 'P', owner_events = 1 '\001', length = 65535, grab_window = 0, modifiers = 64, key = 0 '\000', pointer_mode = 1 '\001', keyboard_mode = 1 '\001', pad0 = "\000\000"}
#4 0x000000000049e404 in QxtGlobalShortcutPrivate::registerShortcut(unsigned int, unsigned int) (nativeKey=0, nativeMods=64) at /tmp/zeal/src/libs/ui/qxtglobalshortcut/qxtglobalshortcut_x11.cpp:146
maskMods = 0
__for_range = @0x4fde90: {0, 16, 2, 18}
__for_begin = 0x4fde90 <(anonymous namespace)::maskModifiers>
__for_end = 0x4fdea0
xcbConnection = 0x0
xcbCookies =
{<QListSpecialMethods<xcb_void_cookie_t>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7ffff770ea80 <QListData::shared_null>}, d = 0x7ffff770ea80 <QListData::shared_null>}}
failed = false
#5 0x000000000049d03e in QxtGlobalShortcutPrivate::setShortcut(QKeySequence const&) (this=0x678750, shortcut=...) at /tmp/zeal/src/libs/ui/qxtglobalshortcut/qxtglobalshortcut.cpp:95
q = 0x69cf10
allMods = {i = 503316480}
nativeKey = 0
nativeMods = 64
res = false
#6 0x000000000049d711 in QxtGlobalShortcut::setShortcut(QKeySequence const&) (this=0x69cf10, shortcut=...) at /tmp/zeal/src/libs/ui/qxtglobalshortcut/qxtglobalshortcut.cpp:219
d = 0x678750
#7 0x000000000049d555 in QxtGlobalShortcut::QxtGlobalShortcut(QKeySequence const&, QObject*) (this=0x69cf10, shortcut=..., parent=0x661c50) at /tmp/zeal/src/libs/ui/qxtglobalshortcut/qxtglobalshortcut.cpp:178
#8 0x0000000000439944 in Zeal::WidgetUi::MainWindow::MainWindow(Zeal::Core::Application*, QWidget*) (this=0x661c50, app=0x5b49a0, parent=0x0) at /tmp/zeal/src/libs/ui/mainwindow.cpp:71
#9 0x00000000004291bf in Zeal::Core::Application::Application(QObject*) (this=0x5b49a0, parent=0x0) at /tmp/zeal/src/libs/core/application.cpp:81
#10 0x000000000042567a in main(int, char**) (argc=1, argv=0x7fffffffc958) at /tmp/zeal/src/app/main.cpp:223
qapp = {d = 0x552ff0}
clParams =
{force = false, preventActivation = false, query = {m_query = {static null = {<No data fields>}, d = 0x573150}, m_keywords = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7ffff770ea80 <QListData::shared_null>}, d = 0x7ffff770ea80 <QListData::shared_null>}}, <No data fields>}, m_keywordPrefix = {static null = {<No data fields>}, d = 0x7ffff770cb40 <QArrayData::shared_null>}}}
appSingleton = {d = 0x572f10}
app = {d = 0x0}
If I comment out all references to m_globalShortcut in mainwindow.cpp, zeal starts fine.
Ah yes, the global shortcut would do it. I have that unset myself, possibly because I encountered this at one point as well.
As a workaround, you can unset the global shortcut. If you are unable to start Zeal to do so, you can edit ~/.config/Zeal/Zeal.conf to contain this:
[global_shortcuts]
show=
Disabling global shortcuts in ~/.config/Zeal/Zeal.conf works great. Thanks @auscompgeek !
Zeal uses XCB for global shortcuts, obviously it wouldn't work in Wayland. For now we should just skip global shortcut initialization when QGuiApplication::platformName() == "wayland".
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for a related request.
Most helpful comment
Ah yes, the global shortcut would do it. I have that unset myself, possibly because I encountered this at one point as well.
As a workaround, you can unset the global shortcut. If you are unable to start Zeal to do so, you can edit
~/.config/Zeal/Zeal.confto contain this: