Summary: | app crashes, no meaningful error, performing directory merge | ||
---|---|---|---|
Product: | [Applications] kdiff3 | Reporter: | maimed_camping819 |
Component: | application | Assignee: | michael <reeves.87> |
Status: | REPORTED --- | ||
Severity: | crash | CC: | maimed_camping819 |
Priority: | NOR | ||
Version First Reported In: | 1.12.3 | ||
Target Milestone: | --- | ||
Platform: | Flatpak | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | repeating the reprocution, just selecting "A" for everything, but with the kde sdk and some cli debug flags. |
Description
maimed_camping819
2025-06-27 03:21:19 UTC
possible most of the logs are irrelevant, given the final lines of the stdout with debug enabled Note that while my second run (setting "A" for everything) produced no output in the `/tmp/mt12-factory-sdcards/output` directory - my initial reproduction did. And as you see below, the flatpak has FULL (as i understand it) access to /tmp/. To this end, it's worth noting that I just installed this today (the version in ubuntu's repos is too old) - forgetting about the sanbox restrictions on /tmp i noticed in the file/dir chooser that my opening `/tmp/` etc was being replaced with `/run/..../tmp`, as expected once I realized it. So I exited, added /tmp/ access in flatseal, and upon re-opening kdiff3 my `/tmp/` paths are left as '/tmp/', not munged into a path into the sandbox running directory. so assuming that output isn't a red herring: we know the sandbox has access restrictions that (might have) never existed on the old native package way. So this should NEVER crash, but should output meaningful information Thanks! ```bash org.kde.kdiff3: Loading A: "" org.kde.kdiff3: Loading B: "/tmp/mt12-factory-sdcards/EdgeTX-MT12-ELRS-2.10.5-Factroy-SD-Content-2024-10-23 (website says update 2025.03.04)/SD-Content/BACKUP" kdiff3: /run/build/kdiff3/src/SourceData.cpp:341: void SourceData::readAndPreprocess(const QByteArray&, bool): Assertion `!m_fileAccess.exists() || !m_fileAccess.isDir()' failed. ``` ```bash $ flatpak info --show-permissions org.kde.kdiff3 [Context] shared=ipc; sockets=x11;wayland;fallback-x11; devices=dri; filesystems=home;/tmp;xdg-config/kdeglobals:ro; [Session Bus Policy] com.canonical.AppMenu.Registrar=talk org.kde.kconfig.notify=talk org.kde.KGlobalSettings=talk org.kde.kdeconnect=talk ``` "--filesystem=host" should be on by default for kdiff3. This is done precisely to avoid permissions issues related to flatpak sandboxing. Looks like that is not the case. In regards to the crash the assert message indicates kdiff3 is some how calling SourceData::readAndPreprocess for something it thinks is a directory. This is always a bug indicator. I'll have a closer look. Not sure if these to problems are related. |