[sword-devel] breakage in verse management at -r2785?

Greg Hellings greg.hellings at gmail.com
Mon Mar 18 09:12:28 MST 2013


On Mon, Mar 18, 2013 at 9:41 AM, Greg Hellings <greg.hellings at gmail.com>wrote:

> Troy, Karl,
>
> It should also be noted that this update to SWORD causes a segfault in the
> following code in Xiphos https://gist.github.com/anonymous/5187582
>
> Specifically the line  key->setAutoNormalize(oldAutoNorm); on line 38 of
> that Gist generates a SegFault with the following backtrace.
>
> #0 0x00007ffff5278ef0 in std::vector<int, std::allocator<int> >::size
> (this=0x676e6175685a20) at
> /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_vector.h:626
> #1 0x00007ffff527724c in sword::VersificationMgr::Book::getVerseMax
> (this=0xa60028, chapter=17424) at
> /home/ghellings/Projects-old/sword/src/mgr/versificationmgr.cpp:241 #2
> 0x00007ffff525aebb in sword::VerseKey::getVerseMax (this=0x1249a60) at
> /home/ghellings/Projects-old/sword/src/keys/versekey.cpp:1243 #3
> 0x00007ffff525b65b in sword::VerseKey::normalize (this=0x1249a60,
> autocheck=true) at
> /home/ghellings/Projects-old/sword/src/keys/versekey.cpp:1353 #4
> 0x00007ffff525bc85 in sword::VerseKey::setAutoNormalize (this=0x1249a60,
> iautonorm=true) at
> /home/ghellings/Projects-old/sword/src/keys/versekey.cpp:1548 #5
> 0x000000000049e118 in GTKChapDisp::getVerseBefore (this=0xefc930,
> imodule=...) at ../src/main/display.cc:1138
>

I'm still seeing a SegFault as before, after I fixed the issue with other
text not displaying. However, the offending line is now display.cc:1130
which is lines 30-32 of the code I pasted above. The stack trace looks like
this

#0  0x00007ffff5278ef0 in std::vector<int, std::allocator<int> >::size
(this=0x676e6175685a20)
    at
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_vector.h:626
#1  0x00007ffff527724c in sword::VersificationMgr::Book::getVerseMax
(this=0xa60028, chapter=17424)
    at /home/ghellings/Projects-old/sword/src/mgr/versificationmgr.cpp:241
#2  0x00007ffff525aebb in sword::VerseKey::getVerseMax (this=0xdcc290)
    at /home/ghellings/Projects-old/sword/src/keys/versekey.cpp:1243
#3  0x00007ffff525b65b in sword::VerseKey::normalize (this=0xdcc290,
autocheck=true)
    at /home/ghellings/Projects-old/sword/src/keys/versekey.cpp:1353
#4  0x00007ffff525bbe9 in sword::VerseKey::setVerse (this=0xdcc290,
iverse=0)
    at /home/ghellings/Projects-old/sword/src/keys/versekey.cpp:1523
#5  0x00007ffff52596b3 in sword::VerseKey::parseVerseList (this=0xeb7fa0,
buf=0xea5e1b "", defaultKey=0x0, expandRange=false,
    useChapterAsVerse=false) at
/home/ghellings/Projects-old/sword/src/keys/versekey.cpp:944
#6  0x00007ffff52570d8 in sword::VerseKey::parse (this=0xeb7fa0,
checkAutoNormalize=true)
    at /home/ghellings/Projects-old/sword/src/keys/versekey.cpp:293
#7  0x00000000004922df in sword::VerseKey::setText (this=0xeb7fa0,
ikey=0xd04b20 "Genesis 0:0")
    at /usr/local/include/sword/versekey.h:210
#8  0x0000000000492310 in sword::VerseKey::operator= (this=0xeb7fa0,
ikey=0xd04b20 "Genesis 0:0")
    at /usr/local/include/sword/versekey.h:475
#9  0x00007ffff52df98f in sword::OSISFootnotes::processText (this=0xef4920,
text=..., key=0xd14a00, module=0xef9618)
    at
/home/ghellings/Projects-old/sword/src/modules/filters/osisfootnotes.cpp:65
#10 0x00007ffff5296fec in sword::SWModule::filterBuffer (this=0xef9618,
filters=0xef90b0, buf=..., key=0xd14a00)
    at /home/ghellings/Projects-old/sword/src/modules/swmodule.cpp:1352
#11 0x00007ffff5297aa1 in sword::SWModule::optionFilter (this=0xef9618,
buf=..., key=0xd14a00)
    at /home/ghellings/Projects-old/sword/include/swmodule.h:622
#12 0x00007ffff5293ea7 in sword::SWModule::renderText (this=0xef9618,
buf=0x0, len=-1, render=true)
    at /home/ghellings/Projects-old/sword/src/modules/swmodule.cpp:826
#13 0x000000000049219f in sword::SWModule::operator char const*
(this=0xef9618) at /usr/local/include/sword/swmodule.h:709
#14 0x000000000049e093 in GTKChapDisp::getVerseBefore (this=0xf0b420,
imodule=...) at ../src/main/display.cc:1130

When I drill all the way down in, the appear to try and pull the verse max
for chapter 17424 when asked to render Genesis 0:0.

--Greg



>
>
> This segfault only seems to happen when I enter Genesis 1 in the
> navigation panel and not at any other time. Those with more gdb savvy than
> I can maybe figure out more of what is going on.
>
> --Greg
>
>
> On Mon, Mar 11, 2013 at 8:57 PM, Karl Kleinpaste <karl at kleinpaste.org>wrote:
>
>> I see that your new showchapter.cpp works.  The only difference in how
>> that works versus Xiphos code is you changed the VerseKey init slightly,
>> so I made that change:
>>
>> VerseKey *key = (VerseKey *)imodule.getKey();
>>
>> And yet Xiphos still fails to construct the chapter.  The loop never
>> executes once.  I don't know what to make of it.  I will have to look at
>> it some more.
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20130318/b0ab8ae2/attachment-0001.html>


More information about the sword-devel mailing list