Crash removing Format

Kornel Benko kornel at lyx.org
Mon Jul 6 08:50:10 UTC 2020


Am Sun, 5 Jul 2020 20:14:27 -0400
schrieb Richard Kimberly Heck <rikiheck at lyx.org>:

> On 7/5/20 8:12 PM, Richard Kimberly Heck wrote:
> > On 6/24/20 11:06 AM, Richard Kimberly Heck wrote:  
> >> On 6/24/20 6:19 AM, Kornel Benko wrote:  
> >>> Am Tue, 23 Jun 2020 22:01:03 -0400
> >>> schrieb Scott Kostyshak <skostysh at lyx.org>:
> >>>  
> >>>> On Mon, Jun 22, 2020 at 04:55:50PM +0200, Kornel Benko wrote:  
> >>>>> Am Mon, 22 Jun 2020 10:24:17 -0400
> >>>>> schrieb Richard Kimberly Heck <rikiheck at lyx.org>:
> >>>>>     
> >>>>>> On 6/22/20 10:03 AM, Kornel Benko wrote:    
> >>>>>>> Following lead to crash:
> >>>>>>>
> >>>>>>> 	1. Create new file-Format (for instance Epub, define a viewer)
> >>>>>>> 	2. define conversion for docbook-xls -> Epub
> >>>>>>> 	3. restart lyx
> >>>>>>> 	4. remove the new conversion
> >>>>>>> 	5. remove the format Epub --> crash
> >>>>>>>
> >>>>>>> There is no crash if
> >>>>>>> 	5. restart lyx
> >>>>>>> 	6. remove the format Epub      
> >>>>>> I can't reproduce.    
> >>>>> You probably need to recompile with "-D_GLIBCXX_DEBUG_PEDANTIC -D_GLIBCXX_DEBUG"
> >>>>>     
> >>>>>> Can you post your preferences file as it exists after
> >>>>>> (3)?    
> >>>>>     
> >>>>>> Do you save or apply after (4) or go right to step (5)?    
> >>>>> Apply only. But with save it is the same.    
> >>>> I can reproduce. In addition I get the following:
> >>>>
> >>>>   Error: attempt to subscript container with out-of-bounds index 21973, but 
> >>>>   container only holds 99 elements.
> >>>>
> >>>> Scott  
> >>> Here the message is:
> >>> /usr/include/c++/8/debug/vector:417:
> >>> Error: attempt to subscript container with out-of-bounds index 1899910496, 
> >>> but container only holds 98 elements.
> >>>
> >>> Objects involved in the operation:
> >>>     sequence "this" @ 0x0x555f98a58bc8 {
> >>>       type = std::__debug::vector<lyx::Graph::Vertex,
> >>> std::allocator<lyx::Graph::Vertex>  
> >>>> ; }  
> >>> Abort (core dumped)
> >>>
> >>> If using attached, I got no crash, but the list of indexes used while removing the
> >>> format is scarifying.
> >>>
> >>>  $ wc errors
> >>>  1014  5060 35805 errors
> >>>
> >>>  $ sort my_list | uniq
> >>> Graph.cpp (145): VERT-INDEX == 0
> >>> Graph.cpp (145): VERT-INDEX == 11
> >>> Graph.cpp (145): VERT-INDEX == 21972
> >>> Graph.cpp (145): VERT-INDEX == 24
> >>> Graph.cpp (145): VERT-INDEX == 32
> >>> Graph.cpp (145): VERT-INDEX == 32757
> >>> Graph.cpp (145): VERT-INDEX == 33
> >>> Graph.cpp (145): VERT-INDEX == 71
> >>> Graph.cpp (145): VERT-INDEX == 79
> >>> Graph.cpp (145): VERT-INDEX == 8
> >>> Graph.cpp (145): VERT-INDEX == 80
> >>> Graph.cpp (145): VERT-INDEX == 83
> >>>
> >>>  $ egrep 21972 my_list | wc
> >>>     377    1885   13949
> >>>
> >>>  $ egrep 32757 my_list | wc
> >>>     134     670    4958  
> >> I will have a look.  
> > I was able to reproduce with the cmake setting mentioned above, but now
> > I can't again. I have not been able to reproduce without those settings,
> > nor do I see the weird values. But something is obviously suspicious.
> >
> > When I did see the crash, it was coming from Converters::isReachable().
> > You could try something like the attached, which could yield more
> > information.  
> 
> Sorry, changed wrong routine. Try this patch.
> 
> Riki
> 
> 

To achieve the settings with gnu c++ compiler do:
with cmake: -DLYX_STDLIB_DEBUG=ON
with automake: --enable_stdlib_debug=yes

With your patch I get:
...
Converter.cpp (987): From pdflatex==34 to xpm==20
Converter.cpp (987): From platex==0 to xpm==20
Converter.cpp (987): From xhtml==50 to bmp==1
/usr/include/c++/8/debug/vector:417:
Error: attempt to subscript container with out-of-bounds index 21870, but 
container only holds 98 elements.

Objects involved in the operation:
    sequence "this" @ 0x0x556e87b6f4b8 {
      type = std::__debug::vector<lyx::Graph::Vertex, std::allocator<lyx::Graph::Vertex>
>;
    }
Abort (core dumped)

...
#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff4c94801 in __GI_abort () at abort.c:79
#2  0x00007ffff5689789 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00005555565d53ed in std::__debug::vector<lyx::Graph::Vertex,
std::allocator<lyx::Graph::Vertex> >::operator[] (this=0x555559d7fdb8, __n=21845)
    at /usr/include/c++/8/debug/vector:417
#4  0x00005555565d4168 in lyx::Graph::isReachable (this=0x555559d7fd88, 
    from=1, to=49) at /usr2/src/lyx/lyx-git/src/Graph.cpp:145
#5  0x000055555651dd0d in lyx::Converters::isReachable (this=0x555559d7fcb0, 
    from="xhtml", to="bmp") at /usr2/src/lyx/lyx-git/src/Converter.cpp:989
#6  0x0000555556d40343 in lyx::frontend::PrefFileformats::updateView (
    this=0x5555581a9620)
    at /usr2/src/lyx/lyx-git/src/frontends/qt/GuiPrefs.cpp:2090

(This was the try to remove file format docbook-xml.)

	Kornel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: Digitale Signatur von OpenPGP
URL: <http://lists.lyx.org/pipermail/lyx-devel/attachments/20200706/9e4e0a8e/attachment.asc>


More information about the lyx-devel mailing list