SIGSEGV when doing undo after putting bib items in a note

Scott Kostyshak skostysh at lyx.org
Tue Jul 2 16:01:44 UTC 2024


To reproduce:

1. Fresh build on current master.
2. Open User Guide.
3. Make sure that editing is enabled, and turn off change tracking.
4. Scroll to the end.
5. Select multiple bib items.
6. Click on the yellow note.
7. Do Undo with ctrl + z.

I get the attached backtrace. Can anyone else reproduce?

If I don't turn off change tracking, different strange behavior occurs.

Scott
-------------- next part --------------
Thread 1 "lyx" received signal SIGSEGV, Segmentation fault.
Download failed: Invalid argument.  Continuing without source file ./string/../sysdeps/x86_64/multiarch/memcmp-evex-movbe.S.
__memcmp_evex_movbe () at ../sysdeps/x86_64/multiarch/memcmp-evex-movbe.S:123
warning: 123	../sysdeps/x86_64/multiarch/memcmp-evex-movbe.S: No such file or directory
(gdb) set pagination off
(gdb) bt
#0  __memcmp_evex_movbe () at ../sysdeps/x86_64/multiarch/memcmp-evex-movbe.S:123
#1  0x00005555556d3fac in std::char_traits<char>::compare (__s1=0x5555576e9a90 "english", __s2=0x0, __n=7)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/char_traits.h:389
#2  0x00005555556f3d48 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare (this=0x5555576e9a80, 
    __str=<error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:3189
#3  0x00005555556f3c5d in std::operator<=><char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (__lhs="english", 
    __rhs=<error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/basic_string.h:3748
#4  0x0000555555760611 in std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator() (this=0x5555576f3c80, __x="english", 
    __y=<error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_function.h:408
#5  0x0000555555a53ad4 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<lyx::WordList, std::default_delete<lyx::WordList> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<lyx::WordList, std::default_delete<lyx::WordList> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<lyx::WordList, std::default_delete<lyx::WordList> > > > >::_M_lower_bound (this=0x5555576f3c80, __x=0x5555576e9a60, __y=0x5555576f3c88, __k=<error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_tree.h:1952
#6  0x0000555555a53a0e in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<lyx::WordList, std::default_delete<lyx::WordList> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<lyx::WordList, std::default_delete<lyx::WordList> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<lyx::WordList, std::default_delete<lyx::WordList> > > > >::find
    (this=0x5555576f3c80, __k=<error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_tree.h:2532
#7  0x0000555555a522ad in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<lyx::WordList, std::default_delete<lyx::WordList> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<lyx::WordList, std::default_delete<lyx::WordList> > > > >::find (this=0x5555576f3c80, 
    __x=<error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_map.h:1220
#8  0x0000555555a51b66 in lyx::theWordList (lang=<error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>)
    at /home/scott/lyxbuilds/master-master/repo/src/WordList.cpp:43
#9  0x00005555559615f7 in lyx::Paragraph::deregisterWords (this=0x5555576ed370) at /home/scott/lyxbuilds/master-master/repo/src/Paragraph.cpp:4911
#10 0x00005555559616c9 in lyx::Paragraph::~Paragraph (this=0x5555576ed370) at /home/scott/lyxbuilds/master-master/repo/src/Paragraph.cpp:1696
#11 0x0000555555761865 in std::destroy_at<lyx::Paragraph> (__location=0x5555576ed370) at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:88
#12 0x00005555557fe8e3 in std::allocator_traits<std::allocator<std::_List_node<lyx::Paragraph> > >::destroy<lyx::Paragraph> (__a=..., __p=0x5555576ed370)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/alloc_traits.h:560
#13 std::__cxx11::list<lyx::Paragraph, std::allocator<lyx::Paragraph> >::_M_erase (this=0x5555576ed360, __position=...)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_list.h:2019
#14 0x00005555557fe842 in std::__cxx11::list<lyx::Paragraph, std::allocator<lyx::Paragraph> >::erase (this=0x5555576ed360, __position=...)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/list.tcc:158
#15 0x00005555557fe6ad in std::__cxx11::list<lyx::Paragraph, std::allocator<lyx::Paragraph> >::erase (this=0x5555576ed360, __first=..., __last=...)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_list.h:1556
#16 0x0000555555a2eab7 in lyx::RandomAccessList<lyx::Paragraph>::erase (this=0x5555576ed360, first=..., last=...)
    at /home/scott/lyxbuilds/master-master/repo/src/support/RandomAccessList.h:244
#17 0x0000555555a2cecd in lyx::Undo::Private::doUndoRedoAction (this=0x555557237f90, cur=..., stack=..., otherstack=...) at /home/scott/lyxbuilds/master-master/repo/src/Undo.cpp:500
#18 0x0000555555a2d501 in lyx::Undo::Private::undoRedoAction (this=0x555557237f90, cur=..., isUndoOperation=true) at /home/scott/lyxbuilds/master-master/repo/src/Undo.cpp:558
#19 0x0000555555a2d565 in lyx::Undo::undoAction (this=0x5555575fb090, cur=...) at /home/scott/lyxbuilds/master-master/repo/src/Undo.cpp:572
#20 0x000055555582987d in lyx::CursorData::undoAction (this=0x55555831ae88) at /home/scott/lyxbuilds/master-master/repo/src/Cursor.cpp:584
#21 0x00005555557bfc3d in lyx::BufferView::dispatch (this=0x5555583181c0, cmd=..., dr=...) at /home/scott/lyxbuilds/master-master/repo/src/BufferView.cpp:1533
#22 0x0000555555e39a94 in lyx::frontend::GuiView::dispatchToBufferView (this=0x555556a436f0, cmd=..., dr=...) at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiView.cpp:4376
#23 0x0000555555e1a5d0 in lyx::frontend::GuiView::dispatch (this=0x555556a436f0, cmd=..., dr=...) at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiView.cpp:5137
#24 0x0000555555dccb7b in lyx::frontend::GuiApplication::dispatch (this=0x555556586310, cmd=..., dr=...) at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:2284
#25 0x0000555555dc5adf in lyx::frontend::GuiApplication::dispatch (this=0x555556586310, cmd=...) at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:1577
#26 0x000055555591adfa in lyx::dispatch (action=...) at /home/scott/lyxbuilds/master-master/repo/src/LyX.cpp:1489
#27 0x0000555555dcd349 in lyx::frontend::GuiApplication::processFuncRequest (this=0x555556586310, func=...)
    at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:2514
#28 0x0000555555dcf3bb in lyx::frontend::GuiApplication::processKeySym (this=0x555556586310, keysym=..., state=1)
    at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:2508
#29 0x0000555555e4b677 in lyx::frontend::GuiWorkArea::processKeySym (this=0x555558465110, key=..., mod=1) at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiWorkArea.cpp:409
#30 0x0000555555e5593a in lyx::frontend::GuiWorkArea::qt_static_metacall (_o=0x555558465110, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7fffffffbec0)
    at /home/scott/lyxbuilds/master-master/CMakeBuild/src/frontends/qt/moc_GuiWorkArea.cpp:127
#31 0x00007ffff6b12dbf in doActivate<false> (sender=0x55555831a6a0, signal_index=3, argv=0x7fffffffbec0) at kernel/qobject.cpp:3937
#32 0x0000555555e4de1d in lyx::frontend::CompressorProxy::signal (this=0x55555831a6a0, _t1=..., _t2=1)
    at /home/scott/lyxbuilds/master-master/CMakeBuild/src/frontends/qt/moc_GuiWorkArea.cpp:371
#33 0x0000555555e4dd11 in lyx::frontend::CompressorProxy::slot (this=0x55555831a6a0, sym=..., mod=1, isAutoRepeat=false)
    at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiWorkArea.cpp:1041
#34 0x0000555555e55e5c in lyx::frontend::CompressorProxy::qt_static_metacall (_o=0x55555831a6a0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x555558660ed0)
    at /home/scott/lyxbuilds/master-master/CMakeBuild/src/frontends/qt/moc_GuiWorkArea.cpp:312
#35 0x00007ffff6b06343 in QObject::event (this=0x55555831a6a0, e=0x7fffe40032b0) at kernel/qobject.cpp:1347
#36 0x00007ffff776bd45 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55555831a6a0, e=0x7fffe40032b0) at kernel/qapplication.cpp:3640
#37 0x0000555555dd4151 in lyx::frontend::GuiApplication::notify (this=0x555556586310, receiver=0x55555831a6a0, event=0x7fffe40032b0)
    at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:3022
#38 0x00007ffff6ad8118 in QCoreApplication::notifyInternal2 (receiver=0x55555831a6a0, event=0x7fffe40032b0) at kernel/qcoreapplication.cpp:1064
#39 0x00007ffff6ad8332 in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462
#40 0x00007ffff6adb94b in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x555556562260) at kernel/qcoreapplication.cpp:1821
#41 0x00007ffff6adbebd in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at kernel/qcoreapplication.cpp:1680
#42 0x00007ffff6b35c0f in postEventSourceDispatch (s=s at entry=0x55555659e2b0) at kernel/qeventdispatcher_glib.cpp:277
#43 0x00007ffff63145b5 in g_main_dispatch (context=0x7fffec000ed0) at ../../../glib/gmain.c:3344
#44 0x00007ffff6373717 in g_main_context_dispatch_unlocked (context=0x7fffec000ed0) at ../../../glib/gmain.c:4152
#45 g_main_context_iterate_unlocked.isra.0 (context=context at entry=0x7fffec000ed0, block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>) at ../../../glib/gmain.c:4217
#46 0x00007ffff6313a53 in g_main_context_iteration (context=0x7fffec000ed0, may_block=1) at ../../../glib/gmain.c:4282
#47 0x00007ffff6b35279 in QEventDispatcherGlib::processEvents (this=0x5555565b8ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#48 0x00007ffff6ad6a7b in QEventLoop::exec (this=this at entry=0x7fffffffc740, flags=..., flags at entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#49 0x00007ffff6adf3e8 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#50 0x0000555555dd2723 in lyx::frontend::GuiApplication::exec (this=0x555556586310) at /home/scott/lyxbuilds/master-master/repo/src/frontends/qt/GuiApplication.cpp:2785
#51 0x00005555559139c6 in lyx::LyX::exec (this=0x7fffffffca90, argc=@0x7fffffffcaa8: 2, argv=0x7fffffffcbd8) at /home/scott/lyxbuilds/master-master/repo/src/LyX.cpp:377
#52 0x0000555555aae9f3 in main (argc=2, argv=0x7fffffffcbd8) at /home/scott/lyxbuilds/master-master/repo/src/main.cpp:55
(gdb) 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.lyx.org/pipermail/lyx-devel/attachments/20240702/f2277607/attachment.asc>


More information about the lyx-devel mailing list