Bug 461213 - Qt6.4 causing crashes linux/opensuse
Summary: Qt6.4 causing crashes linux/opensuse
Status: RESOLVED FIXED
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: master
Platform: Other Other
: NOR crash
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-30 17:31 UTC by Kurt Hindenburg
Modified: 2024-03-23 03:09 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kurt Hindenburg 2022-10-30 17:31:42 UTC
The CI upgrade from opensuse Qt6.2 to 6.4 caused this.  I've change the 3 tests that were failing to skip when running Qt6.4.  The freebsd_qt64 CI appears to work.
The executable on my Qt6.4 opensuse also crashes upon startup.

Maybe https://bugreports.qt.io/browse/QTBUG-82351

I'm not sure how to resolve this in KDE/Konsole

Trace from someone in IRC
==19147== Syscall param waitid(infop) points to unaddressable byte(s)
==19147==    at 0x90238CD: syscall (syscall.S:38)
==19147==    by 0x87D7458: sys_waitid(int, int, siginfo_t*, int, rusage*) (forkfd_linux.c:67)
==19147==    by 0x87D74D3: detect_clone_pidfd_support() (forkfd_linux.c:127)
==19147==    by 0x87D7539: system_forkfd_availability() (forkfd_linux.c:140)
==19147==    by 0x87D7610: system_vforkfd(int, int*, int (*)(void*), void*, int*) (forkfd_linux.c:164)
==19147==    by 0x87D71DD: vforkfd (forkfd.c:814)
==19147==    by 0x87ADDA1: QProcessPrivate::startProcess() (qprocess_unix.cpp:472)
==19147==    by 0x87A326B: QProcessPrivate::start(QFlags<QIODeviceBase::OpenModeFlag>) (qprocess.cpp:2163)
==19147==    by 0x87A2CC9: QProcess::start(QFlags<QIODeviceBase::OpenModeFlag>) (qprocess.cpp:1992)
==19147==    by 0x492CBDA: Konsole::Pty::start(QString const&, QList<QString> const&, QList<QString> const&) (Pty.cpp:282)
==19147==    by 0x4A35AFF: Konsole::Session::run() (Session.cpp:510)
==19147==    by 0xE37BF0F: Konsole::Part::showShellInDir(QString const&) (Part.cpp:135)
==19147==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==19147==
Comment 1 Thiago Macieira 2022-11-14 16:42:15 UTC
This is probably the first thing that valgrind printed, but is not your issue. The info parameter to waitid() does not need to be null. The man page says:
"Linux, if infop is NULL, waitid() succeeds, and returns the process ID of the waited-for child.  Applications should avoid  relying  on this inconsistent, nonstandard, and unnecessary feature."

That particular code testing the kernel, so we can rely on the behaviour-specific content.