Bug 445173 - Konsole crash when attempting to make new (and renamed) profile "default"
Summary: Konsole crash when attempting to make new (and renamed) profile "default"
Status: RESOLVED FIXED
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: 21.08.2
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2021-11-08 18:45 UTC by Ty Wait
Modified: 2023-03-13 18:49 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 Ty Wait 2021-11-08 18:45:45 UTC
Application: konsole (21.08.2)

Qt Version: 5.15.3
Frameworks Version: 5.87.0
Operating System: Linux 5.11.0-38-generic x86_64
Windowing System: X11
Distribution: KDE neon User - Plasma 25th Anniversary Edition
DrKonqi: 5.23.2 [KCrashBackend]

-- Information about the crash:
- What I was doing when the application crashed:  I had 3 tabs open in one Konsole window.  I had set the history length to 10000 in one of the tabs by clicking "Edit Current Profile..." in Settings.  I used that tab for several commands before going to a second tab (it already existed).  I did some commands with lengthy output and noticed it wasn't retaining 10000 lines.  I checked the settings for the second tab, discovering it still had a 1000 line history (yes, I'm new to Konsole :).  I again set the history for "current profile" to 10000 lines.  I went into "Manage Profiles..." in Settings and discovered my actions had created two new profiles (Profile 1 and Profile 2).  I renamed Profile 1 to "Local standard".  I then highlighted Local Standard and clicked "Set as Default".  Konsole crashed immediately.

I started a new Konsole instance and noticed that the rename had been successful, but not changing "Local standard" to default.  This time I was able to set "Local standard" to default and also remove "Profile 2" without incident.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: Konsole (konsole), signal: Segmentation fault

[New LWP 28252]
[New LWP 28264]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f3f75da0aff in __GI___poll (fds=0x7fffd7f8eaf8, nfds=1, timeout=1000) at ../sysdeps/unix/sysv/linux/poll.c:29
__preamble__
[Current thread is 1 (Thread 0x7f3f708899c0 (LWP 28207))]

Thread 3 (Thread 0x7f3f6f01f700 (LWP 28264)):
#0  0x00007f3f75da0aff in __GI___poll (fds=0x7f3f60004e60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f3f7430a36e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f3f7430a4a3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f3f7636e61b in QEventDispatcherGlib::processEvents (this=0x7f3f60000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f3f763128ab in QEventLoop::exec (this=this@entry=0x7f3f6f01ebb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#5  0x00007f3f7612c2c2 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#6  0x00007f3f751b4f4b in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f3f7612d45c in QThreadPrivate::start (arg=0x7f3f75238d80) at thread/qthread_unix.cpp:329
#8  0x00007f3f74ccb609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007f3f75dad293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f3f6fd1c700 (LWP 28252)):
#0  0x00007f3f75da0aff in __GI___poll (fds=0x7f3f6fd1bae8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f3f73f03c1a in ?? () from /lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f3f73f0590a in xcb_wait_for_event () from /lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f3f7046ae88 in QXcbEventQueue::run (this=0x55b32296b6b0) at qxcbeventqueue.cpp:228
#4  0x00007f3f7612d45c in QThreadPrivate::start (arg=0x55b32296b6b0) at thread/qthread_unix.cpp:329
#5  0x00007f3f74ccb609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f3f75dad293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f3f708899c0 (LWP 28207)):
[KCrash Handler]
#4  0x00007f3f775fd077 in ?? () from /lib/x86_64-linux-gnu/libkonsoleprivate.so.21
#5  0x00007f3f776a39ec in Konsole::ProfileList::updateAction(QAction*, QExplicitlySharedDataPointer<Konsole::Profile>) () from /lib/x86_64-linux-gnu/libkonsoleprivate.so.21
#6  0x00007f3f776a40ae in Konsole::ProfileList::profileChanged(QExplicitlySharedDataPointer<Konsole::Profile> const&) () from /lib/x86_64-linux-gnu/libkonsoleprivate.so.21
#7  0x00007f3f7634adce in QtPrivate::QSlotObjectBase::call (a=0x7fffd7f8f8c0, r=0x55b322b277e0, this=0x55b322b29510) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#8  doActivate<false> (sender=0x7f3f77725080, signal_index=5, argv=0x7fffd7f8f8c0) at kernel/qobject.cpp:3886
#9  0x00007f3f7769d519 in Konsole::ProfileManager::profileChanged(QExplicitlySharedDataPointer<Konsole::Profile> const&) () from /lib/x86_64-linux-gnu/libkonsoleprivate.so.21
#10 0x00007f3f776a7163 in Konsole::ProfileManager::setDefaultProfile(QExplicitlySharedDataPointer<Konsole::Profile> const&) () from /lib/x86_64-linux-gnu/libkonsoleprivate.so.21
#11 0x00007f3f7775c5d0 in ?? () from /lib/x86_64-linux-gnu/libkonsoleapp.so.21
#12 0x00007f3f7634adce in QtPrivate::QSlotObjectBase::call (a=0x7fffd7f8fa50, r=0x55b323f70650, this=0x55b323def7e0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#13 doActivate<false> (sender=0x55b323f96dd0, signal_index=9, argv=0x7fffd7f8fa50) at kernel/qobject.cpp:3886
#14 0x00007f3f76344197 in QMetaObject::activate (sender=sender@entry=0x55b323f96dd0, m=m@entry=0x7f3f773c7600 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffd7f8fa50) at kernel/qobject.cpp:3946
#15 0x00007f3f76fa8cb6 in QAbstractButton::clicked (this=this@entry=0x55b323f96dd0, _t1=<optimized out>) at .moc/moc_qabstractbutton.cpp:308
#16 0x00007f3f76fa8ede in QAbstractButtonPrivate::emitClicked (this=0x55b323ecaf10) at widgets/qabstractbutton.cpp:415
#17 0x00007f3f76faa3b3 in QAbstractButtonPrivate::click (this=0x55b323ecaf10) at widgets/qabstractbutton.cpp:408
#18 0x00007f3f76faa575 in QAbstractButton::mouseReleaseEvent (this=0x55b323f96dd0, e=0x7fffd7f90010) at widgets/qabstractbutton.cpp:1044
#19 0x00007f3f76ef3cf6 in QWidget::event (this=0x55b323f96dd0, event=0x7fffd7f90010) at kernel/qwidget.cpp:8664
#20 0x00007f3f76fab7a3 in QAbstractButton::event (this=this@entry=0x55b323f96dd0, e=e@entry=0x7fffd7f90010) at widgets/qabstractbutton.cpp:1001
#21 0x00007f3f7704edd3 in QPushButton::event (this=0x55b323f96dd0, e=0x7fffd7f90010) at widgets/qpushbutton.cpp:709
#22 0x00007f3f76eb0dc3 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55b323f96dd0, e=0x7fffd7f90010) at kernel/qapplication.cpp:3632
#23 0x00007f3f76eb9e77 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3076
#24 0x00007f3f76313daa in QCoreApplication::notifyInternal2 (receiver=0x55b323f96dd0, event=0x7fffd7f90010) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#25 0x00007f3f76eb90a7 in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x55b323f96dd0, event=event@entry=0x7fffd7f90010, alienWidget=alienWidget@entry=0x55b323f96dd0, nativeWidget=0x55b323f904d0, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2614
#26 0x00007f3f76f0ef44 in QWidgetWindow::handleMouseEvent (this=0x55b323f570e0, event=0x7fffd7f90490) at /usr/include/c++/9/bits/atomic_base.h:413
#27 0x00007f3f76f12264 in QWidgetWindow::event (event=0x7fffd7f90490, this=0x55b323f570e0) at kernel/qwidgetwindow.cpp:300
#28 QWidgetWindow::event (this=0x55b323f570e0, event=0x7fffd7f90490) at kernel/qwidgetwindow.cpp:239
#29 0x00007f3f76eb0dc3 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55b323f570e0, e=0x7fffd7f90490) at kernel/qapplication.cpp:3632
#30 0x00007f3f76eb9bb8 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3156
#31 0x00007f3f76313daa in QCoreApplication::notifyInternal2 (receiver=0x55b323f570e0, event=0x7fffd7f90490) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#32 0x00007f3f767ba4d8 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at kernel/qguiapplication.cpp:2282
#33 0x00007f3f767bbb45 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x55b32353af60) at kernel/qguiapplication.cpp:2002
#34 0x00007f3f767937ac in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#35 0x00007f3f7046beae in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#36 0x00007f3f7430a17d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f3f7430a400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007f3f7430a4a3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007f3f7636e602 in QEventDispatcherGlib::processEvents (this=0x55b322a442e0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#40 0x00007f3f763128ab in QEventLoop::exec (this=this@entry=0x7fffd7f90830, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#41 0x00007f3f7631aa64 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#42 0x000055b321d060d6 in ?? ()
#43 0x00007f3f75cb20b3 in __libc_start_main (main=0x55b321d05ac0, argc=3, argv=0x7fffd7f90b28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffd7f90b18) at ../csu/libc-start.c:308
#44 0x000055b321d0643e in ?? ()
[Inferior 1 (process 28207) detached]

Possible duplicates by query: bug 442496, bug 441765, bug 441215, bug 441206, bug 440512.

Reported using DrKonqi
Comment 1 Ahmad Samir 2021-11-08 19:39:49 UTC
I tested with your steps to reproduce, and I don't see this issue with the master branch; there has been various changes to the profile dialog(s), and so I assume it's been fixed in master.

FWIW, when you edit the "built-in" profile, the code creates a new profile because the built-in one is immutable, it acts as a global fallback if you have no profiles at all.
Comment 2 Ty Wait 2021-11-08 21:34:05 UTC
   Ahmad -

   Thanks for your reply. I noticed there were several bugs involving
   Konsole's profile, so I'm amenable to your assessment. I'm running a
   KDE Neon system update now that includes a Konsole update. Maybe I
   should have applied that update earlier :-)

   I noticed the immutability of the "built-in" profile, and the
   rationale you present for such a profile being a global fallback makes
   a lot of sense.

   Thanks for the quick response!!

   -Ty

   On 11/8/21 2:39 PM, Ahmad Samir wrote:

     https://bugs.kde.org/show_bug.cgi?id=445173          
     Ahmad Samir      <a.samirh78@gmail.com> [1]      changed:
     
                What    |Removed                     |Added
     ----------------------------------------------------------------------------
                      CC|                            |     a.samirh78@gmail.com [1]     
     --- Comment #1 from Ahmad Samir      <a.samirh78@gmail.com> [1]      ---
     I tested with your steps to reproduce, and I don't see this issue with the
     master branch; there has been various changes to the profile dialog(s), and so
     I assume it's been fixed in master.
     
     FWIW, when you edit the "built-in" profile, the code creates a new profile
     because the built-in one is immutable, it acts as a global fallback if you have
     no profiles at all.


   

   1. mailto:a.samirh78@gmail.com
Comment 3 Waqar Ahmed 2023-03-13 18:49:09 UTC
Git commit 2d0fad18dc3d6fd8a45c50b8fd889889b473e0e2 by Waqar Ahmed.
Committed on 13/03/2023 at 18:31.
Pushed by hindenburg into branch 'master'.

Fix crash in ProfileSettings

Fixes the following crash

- Open Settings -> Manage Profiles...
- Click on a non default profile and edit it
- In "Edit Profile Dialog", check "Default" to make this profile default
- Click Ok, Now we are back in "Manage Profiles" dialog.
- See that "Set as Default" is still clickable, clicking it crashes konsole
Related: bug 423136, bug 454986

M  +6    -0    src/settings/ProfileSettings.cpp

https://invent.kde.org/utilities/konsole/commit/2d0fad18dc3d6fd8a45c50b8fd889889b473e0e2