| Summary: | Grow terminal to left/right shotcuts crash yaquake | ||
|---|---|---|---|
| Product: | [Applications] yakuake | Reporter: | trulyliu <trulyliu> |
| Component: | general | Assignee: | Eike Hein <hein> |
| Status: | RESOLVED WORKSFORME | ||
| Severity: | crash | CC: | aron.cederholm, bugseforuns, ml |
| Priority: | NOR | Keywords: | drkonqi |
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi |
||
|
Description
trulyliu
2018-03-28 11:38:04 UTC
bug 392928 seems related/duplicate. Created attachment 129592 [details]
New crash information added by DrKonqi
yakuake (3.0.5+) using Qt 5.15.0
- What I was doing when the application crashed:
1. Split Left/Right
2. Grow Terminal to Right
Reproducible every time.
- Custom settings of the application:
"Grow Terminal to Right" is mapped to shortcut Ctrl+Shift+L
-- Backtrace (Reduced):
#4 0x00007f11255348ab in QSplitter::indexOf(QWidget*) const () from /usr/lib/libQt5Widgets.so.5
[...]
#8 0x00007f1125380f23 in QAction::triggered(bool) () from /usr/lib/libQt5Widgets.so.5
#9 0x00007f1125383805 in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQt5Widgets.so.5
#10 0x00007f1125384448 in QAction::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#11 0x00007f1125387702 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
Created attachment 131536 [details]
New crash information added by DrKonqi
yakuake (20.08.1) using Qt 5.15.0
- What I was doing when the application crashed:
This bug is still present in Yakuake 20.08.
Activating "grow terminal right/left/top/bottom" will crash the application on these conditions:
1) Allways INDEPENDENT of direction if the terminal has not been split
2) Allways on GROW RIGHT if the active terminal is the right-most terminal
3) Allways on GROW LEFT if the active terminal is the left-most terminal
4) Allways on GROW UP if the active terminal is the top-most terminal
5) Allways on GROW DOWN if the active terminal is the bottom-most terminal
I explored further what happens when the terminal is not split yet and trying to grow the terminal to the right (case 1).
in app/session.cpp, the method tryGrowTerminal():
On line ~341, The QWidget-pointer 'child' is assigned to the result of terminal->partWidget():
QWidget* child = terminal->partWidget();
Unfortunately, I do not have debugging symbols on QWidget, so I don't know the details, other than that the pointer seems to point to an valid QWidget object.
Then, the execution will enter the wile loop at line ~343. It will execute once, assign int currentPos to a value (0, to be exact) from splitter->indexOfChild(child) which is inherited from QSplitter::indexOfChild(QWidget*).
Then the currentPos != -1 check will fail in the if on line ~355, which means 'child 'will be repointed to the current 'splitter' on line ~371, which as an instance of a Splitter, a subclass of QSplitter. Also, splitter itself will be reassigned to its parentWidget on line ~372 (splitter->parentWidget()).
Now, here comes to real issue. The while (splitter) loops continue once more. But this time, when it's trying to run splitter->indexOf(child) on line ~353, it will just SEGFAULT, with no further explanation.
Unfortunately, I'm not able to rebuild QSplitter and QWidget with debugging symbols just to debug this issue furter, atm. So I hope someone else (a maintainer or a bug-squashing KDE core dev, perhaps) can try to hunt down this bug further.
For other users, I can recommend disabling the grow terminal keyboard shortcuts so you don't accidentally trigger this bug.
-- Backtrace (Reduced):
#4 0x00007faccd64b8ab in QSplitter::indexOf(QWidget*) const () from /usr/lib/libQt5Widgets.so.5
#5 0x00005597a9fc2edc in Session::tryGrowTerminal (this=<optimized out>, terminalId=<optimized out>, direction=direction@entry=Session::Right, pixels=pixels@entry=10) at /home/makepkg/yakuake/trunk/src/yakuake-20.08.1/app/session.cpp:353
#6 0x00005597a9fbf588 in SessionStack::tryGrowTerminalRight (this=this@entry=0x5597ab68dae0, terminalId=<optimized out>, pixels=pixels@entry=10) at /usr/include/qt/QtCore/qhash.h:156
#7 0x00005597a9fa8275 in MainWindow::handleContextDependentAction (this=0x7fff22a5e6a0, action=0x5597ab746250, sessionId=<optimized out>) at /home/makepkg/yakuake/trunk/src/yakuake-20.08.1/app/mainwindow.cpp:515
[...]
#9 0x00007faccd497f23 in QAction::triggered(bool) () from /usr/lib/libQt5Widgets.so.5
Thank you for reporting this crash in KDE software. As it has been a while since this issue was reported, can we please ask you to see if you can reproduce the crash with a recent software version? If you can reproduce the issue, please change the status to "CONFIRMED" when replying. Thank you! Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone! (In reply to Justin Zobel from comment #4) > Thank you for reporting this crash in KDE software. As it has been a while > since this issue was reported, can we please ask you to see if you can > reproduce the crash with a recent software version? > > If you can reproduce the issue, please change the status to "CONFIRMED" when > replying. Thank you! I just checked, an no crash for me any longer in 22.08. Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone! This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging Thank you for helping us make KDE software even better for everyone! |