LyX closes when searching and replacing within an equation.

José Matos jaomatos at gmail.com
Sat Jul 13 16:18:57 UTC 2024


On Fri, 2024-07-12 at 23:14 -0500, T Rex wrote:
> The file and the backtrace:
> 
> 
> /usr/include/c++/13.2.0/bits/stl_vector.h:1232: std::vector<_Tp,
> _Alloc>::reference std::vector<_Tp, _Alloc>::back() [with _Tp =
> lyx::CursorSlice; _Alloc = std::allocator<lyx::CursorSlice>;
> reference = lyx::CursorSlice&]: Assertion '!this->empty()' failed.

I can reproduce this problem following the recipe.

The full backtrace follows attached.
-- 
José Abílio
-------------- next part --------------
/usr/include/c++/14/bits/stl_vector.h:1237: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::back() [with _Tp = lyx::CursorSlice; _Alloc = std::allocator<lyx::CursorSlice>; reference = lyx::CursorSlice&]: Assertion '!this->empty()' failed.

Thread 1 "lyx" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo at entry=6, no_tid=no_tid at entry=0) at pthread_kill.c:44
Downloading source file /usr/src/debug/glibc-2.39-17.fc40.x86_64/nptl/pthread_kill.c
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;                                                                                                                                                     
(gdb) backtrace 
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo at entry=6, no_tid=no_tid at entry=0) at pthread_kill.c:44
#1  0x00007ffff5ea8513 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78
#2  0x00007ffff5e4fc4e in __GI_raise (sig=sig at entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff5e37902 in __GI_abort () at abort.c:79
#4  0x00007ffff60dabf0 in std::__glibcxx_assert_fail
    (file=file at entry=0x555555f9ded8 "/usr/include/c++/14/bits/stl_vector.h", line=line at entry=1237, function=function at entry=0x555555fa1590 "std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::back() [with _Tp = lyx::CursorSlice; _Alloc = std::allocator<lyx::CursorSlice>; reference = lyx::CursorSlice&]", condition=condition at entry=0x555555f75066 "!this->empty()") at ../../../../../libstdc++-v3/src/c++11/assert_fail.cc:41
#5  0x00005555557f3177 in std::vector<lyx::CursorSlice, std::allocator<lyx::CursorSlice> >::back() [clone .part.0] [clone .lto_priv.0] [clone .lto_priv.0] (this=<optimized out>) at /usr/include/c++/14/bits/stl_vector.h:1237
#6  0x0000555555a3e638 in std::vector<lyx::CursorSlice, std::allocator<lyx::CursorSlice> >::back (this=<optimized out>, this=<optimized out>) at /usr/src/debug/lyx-2.4.1-1.fc40.x86_64/src/lyxfind.cpp:329
#7  lyx::DocIterator::top (this=<optimized out>, this=<optimized out>) at /usr/src/debug/lyx-2.4.1-1.fc40.x86_64/src/DocIterator.h:80
#8  lyx::DocIterator::pit (this=<optimized out>, this=<optimized out>) at /usr/src/debug/lyx-2.4.1-1.fc40.x86_64/src/DocIterator.h:100
#9  lyx::(anonymous namespace)::findBackwards (cur=..., endcur=..., match=..., find_del=false, onlysel=true) at /usr/src/debug/lyx-2.4.1-1.fc40.x86_64/src/lyxfind.cpp:262
#10 lyx::findOne (bv=bv at entry=0x55555791fd70, searchstr=L"{", case_sens=false, whole=false, forward=false, find_del=find_del at entry=false, check_wrap=true, auto_wrap=true, instant=false, onlysel=true)
    at /usr/src/debug/lyx-2.4.1-1.fc40.x86_64/src/lyxfind.cpp:335
#11 0x0000555555a3ee2b in lyx::lyxfind (bv=0x55555791fd70, ev=<optimized out>) at /usr/src/debug/lyx-2.4.1-1.fc40.x86_64/src/lyxfind.cpp:632
#12 0x0000555555a13a92 in lyx::BufferView::dispatch (this=0x55555791fd70, cmd=..., dr=...) at /usr/src/debug/lyx-2.4.1-1.fc40.x86_64/src/BufferView.cpp:1751
#13 0x0000555555cb02aa in lyx::frontend::GuiView::dispatchToBufferView (this=0x555556bdedd0, cmd=..., dr=...) at frontends/qt/GuiView.cpp:4368
#14 0x0000555555cc6ede in lyx::frontend::GuiView::dispatch (this=0x555556bdedd0, cmd=..., dr=...) at frontends/qt/GuiView.cpp:5129
#15 0x0000555555c804f4 in lyx::frontend::GuiApplication::dispatch (this=0x555556273640, cmd=..., dr=...) at frontends/qt/GuiApplication.cpp:2284
#16 0x0000555555c7c91a in lyx::frontend::GuiApplication::dispatch (this=0x555556273640, cmd=...) at frontends/qt/GuiApplication.cpp:1577
#17 0x0000555555e589da in lyx::frontend::GuiSearchWidget::find
    (this=this at entry=0x555557ba4710, search=L"{", casesensitive=<optimized out>, matchword=matchword at entry=false, forward=forward at entry=false, instant=instant at entry=false, wrap=true, onlysel=true) at frontends/qt/GuiSearch.cpp:513
#18 0x0000555555e58b9a in lyx::frontend::GuiSearchWidget::doFind (this=0x555557ba4710, backwards=<optimized out>, instant=false) at frontends/qt/GuiSearch.cpp:497
#19 0x00007ffff65fcbe0 in doActivate<false> (sender=0x555557ba5500, signal_index=9, argv=0x7fffffffb8e0) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/corelib/kernel/qobject.cpp:4098
#20 0x00007ffff65f2b47 in QMetaObject::activate (sender=sender at entry=0x555557ba5500, m=m at entry=0x7ffff7d6a4a0 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index at entry=2, argv=argv at entry=0x7fffffffb8e0)
    at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/corelib/kernel/qobject.cpp:4146
#21 0x00007ffff78c3114 in QAbstractButton::clicked (this=this at entry=0x555557ba5500, _t1=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/redhat-linux-build/src/widgets/Widgets_autogen/include/moc_qabstractbutton.cpp:324
#22 0x00007ffff78c339f in QAbstractButtonPrivate::emitClicked (this=0x555557903700) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/widgets/qabstractbutton.cpp:381
#23 0x00007ffff78c4a7f in QAbstractButtonPrivate::click (this=0x555557903700) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/widgets/qabstractbutton.cpp:374
#24 0x00007ffff78c4c95 in QAbstractButton::mouseReleaseEvent (this=0x555557ba5500, e=0x7fffffffbfe0) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/widgets/qabstractbutton.cpp:976
#25 0x00007ffff77ed158 in QWidget::event (this=0x555557ba5500, event=0x7fffffffbfe0) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/kernel/qwidget.cpp:9405
#26 0x00007ffff778b218 in QApplicationPrivate::notify_helper (this=this at entry=0x555556271140, receiver=receiver at entry=0x555557ba5500, e=e at entry=0x7fffffffbfe0)
    at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3287
#27 0x00007ffff7796142 in QApplication::notify (this=this at entry=0x555556273640, receiver=<optimized out>, e=0x7fffffffbfe0) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2765
#28 0x0000555555c7aca0 in lyx::frontend::GuiApplication::notify (this=0x555556273640, receiver=<optimized out>, event=<optimized out>) at frontends/qt/GuiApplication.cpp:3001
#29 0x00007ffff6596dc8 in QCoreApplication::notifyInternal2 (receiver=0x555557ba5500, event=0x7fffffffbfe0) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1142
#30 0x00007ffff659703d in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1597
#31 0x00007ffff77946cc in QApplicationPrivate::sendMouseEvent
    (receiver=receiver at entry=0x555557ba5500, event=event at entry=0x7fffffffbfe0, alienWidget=<optimized out>, nativeWidget=0x555556bdedd0, buttonDown=buttonDown at entry=0x7ffff7dad880 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2347
#32 0x00007ffff78011f6 in QWidgetWindow::handleMouseEvent (this=0x555556e5d2c0, event=0x7fffffffc380) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/kernel/qwidgetwindow.cpp:649
#33 0x00007ffff7804130 in QWidgetWindow::event (this=0x555556e5d2c0, event=0x7fffffffc380) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/kernel/qwidgetwindow.cpp:263
#34 0x00007ffff778b218 in QApplicationPrivate::notify_helper (this=this at entry=0x5555565c4880, receiver=0x555556e5d2c0, e=0x7fffffffc380, e at entry=0x1)
    at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3287
#35 0x00007ffff7795647 in QApplication::notify (this=this at entry=0x555556273640, receiver=<optimized out>, e=0x1) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/kernel/qapplication.cpp:3049
#36 0x0000555555c7aca0 in lyx::frontend::GuiApplication::notify (this=0x555556273640, receiver=<optimized out>, event=<optimized out>) at frontends/qt/GuiApplication.cpp:3001
#37 0x00007ffff6596dc8 in QCoreApplication::notifyInternal2 (receiver=0x555556e5d2c0, event=0x7fffffffc380) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1142
#38 0x00007ffff659703d in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/corelib/kernel/qcoreapplication.cpp:1597
#39 0x00007ffff6de6eab in QGuiApplicationPrivate::processMouseEvent (e=0x7fffd4002ca0) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:2327
#40 0x00007ffff6e4b4bc in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:1114
#41 0x00007ffff73633f4 in userEventSourceDispatch (source=<optimized out>) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#42 0x00007ffff630ee8c in g_main_dispatch (context=0x7fffe0000f00) at ../glib/gmain.c:3344
#43 g_main_context_dispatch_unlocked (context=0x7fffe0000f00) at ../glib/gmain.c:4152
#44 0x00007ffff6370c98 in g_main_context_iterate_unlocked.isra.0 (context=context at entry=0x7fffe0000f00, block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>) at ../glib/gmain.c:4217
#45 0x00007ffff6310383 in g_main_context_iteration (context=0x7fffe0000f00, may_block=1) at ../glib/gmain.c:4282
#46 0x00007ffff68850a3 in QEventDispatcherGlib::processEvents (this=0x55555628be80, flags=...) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:394
#47 0x00007ffff65a3b03 in QEventLoop::exec (this=this at entry=0x7fffffffc7b0, flags=..., flags at entry=...) at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/corelib/global/qflags.h:34
--Type <RET> for more, q to quit, c to continue without paging--
#48 0x00007ffff659f9bc in QCoreApplication::exec () at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/corelib/global/qflags.h:74
#49 0x00007ffff6dd67ed in QGuiApplication::exec () at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/gui/kernel/qguiapplication.cpp:1926
#50 0x00007ffff778b189 in QApplication::exec () at /usr/src/debug/qt6-qtbase-6.7.2-3.fc40.x86_64/src/widgets/kernel/qapplication.cpp:2555
#51 0x000055555590bb56 in lyx::frontend::GuiApplication::exec (this=0x555556273640) at frontends/qt/GuiApplication.cpp:2764
#52 lyx::LyX::exec (this=0x7fffffffd300, argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/lyx-2.4.1-1.fc40.x86_64/src/LyX.cpp:377
#53 0x00005555557c446a in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/lyx-2.4.1-1.fc40.x86_64/src/main.cpp:55


More information about the lyx-devel mailing list