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 <skost...@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 <rikih...@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


diff --git a/src/Converter.cpp b/src/Converter.cpp
index 3487f4b45e..dc4be69cc3 100644
--- a/src/Converter.cpp
+++ b/src/Converter.cpp
@@ -982,8 +982,11 @@ FormatList const Converters::getReachable(string const & 
from,
 
 bool Converters::isReachable(string const & from, string const & to)
 {
-       return G_.isReachable(theFormats().getNumber(from),
-                             theFormats().getNumber(to));
+       int const f = theFormats().getNumber(from);
+       int const t = theFormats().getNumber(to);
+       LYXERR0("From " << from << "==" << f << " to " << to << "==" << t);
+       LATTEST(t < 1000 && f < 1000);
+       return G_.isReachable(t, f);
 }
 
 
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to