Bug 1833756
Summary: | Crash when creating a new terminal over D-Bus and immediately using the GSimpleAction to create a second one | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Christian Persch <chpe> |
Component: | gnome-terminal | Assignee: | Debarshi Ray <debarshir> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 33 | CC: | anper1979, caillon+fedoraproject, debarshir, giallu, gnome-sig, john.j5live, mclasen, rhughes, rstrode, sandmann |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2021-05-31 15:17:50 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Christian Persch
2020-05-10 10:01:49 UTC
This message is a reminder that Fedora 32 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora 32 on 2021-05-25. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '32'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 32 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. *** Bug 1882972 has been marked as a duplicate of this bug. *** Things have changed a bit since GNOME Terminal 3.36.1.1 because of this commit: Revert "screen: Use clean env when creating new tab" The crash should no longer happen unless the terminal is running a Toolbox shell inside it. However, I think it's still worth fixing this crash for the Toolbox shell case. As far as I can make out, the priv->exec_data of a TerminalScreen can only be NULL between creating the TerminalScreen instance with terminal_screen_new and executing a child in it with terminal_screen_exec. There are only two code paths where this happens - one when a new terminal is created from an existing terminal using the keyboard shortcuts or menus (ie., the GSimpleAction), and the other when creating a new terminal using the app menu or the gnome-terminal client (ie., over D-Bus). As far as I can make out, a terminal created through the GSimpleAction executes a child in one single synchronous step. Therefore, it's not possible for it to be a parent TerminalScreen with a NULL priv->exec_data. However, one that's created over D-Bus might have a NULL priv->exec_data between the successive D-Bus calls to o.g.Terminal.Factory:CreateInstance and o.g.Terminal.Receiver:Exec. So, I think what happened here is that someone created a new terminal over D-Bus and then immediately used the GSimpleAction to create a second one from it between the two D-Bus calls. We are only interested in the parent TerminalScreen's priv->exec_data when a Toolbox shell is running inside it. That implies that priv->exec_data can't be NULL because a child (ie., toolbox enter ...) has already been executed inside it. Otherwise, we wouldn't know that a Toolbox shell is running inside it. Therefore, I think it would be sufficient to add a g_return_* assertion to express this assumption, and that the crash is actually fixed already. I have updated the patches accordingly in Fedora >= 33. Since the crash is effectively fixed already, I held off from doing any builds except for Rawhide. |