Hi Nilesh,

Nilesh Patra, on 2024-12-07:
> Thanks for debugging this. The error to me appears to be here:
> 
> https://salsa.debian.org/med-team/pbseqlib/-/blob/master/alignment/algorithms/anchoring/FindMaxIntervalImpl.hpp?ref_type=heads#L140
> 
> and consequently at 
> https://salsa.debian.org/med-team/pbseqlib/-/blob/master/alignment/algorithms/anchoring/FindMaxIntervalImpl.hpp?ref_type=heads#L144
> 
> It is then trying to access matchList[m] and m is matchList.size() in the
> first iteration which is undefined behavior.
> 
> It should start from  matchList.size() - 1. I've pushed a fix -- do blasr
> autopkgtest pass now?

Thanks for taking the time to diagnose the error, I have pulled
your changes for pbseqlib, rebuilt it, then built blasr against
the fresh pbseqlib.  I still hit a core dump though.  The back
trace looks like:

        #0  __pthread_kill_implementation (threadid=<optimized out>, 
            signo=signo@entry=6, no_tid=no_tid@entry=0) at 
./nptl/pthread_kill.c:44
        #1  0x00007ffff71e4cef in __pthread_kill_internal (threadid=<optimized 
out>, 
            signo=6) at ./nptl/pthread_kill.c:78
        #2  0x00007ffff7190c42 in __GI_raise (sig=sig@entry=6)
            at ../sysdeps/posix/raise.c:26
        #3  0x00007ffff71794f0 in __GI_abort () at ./stdlib/abort.c:79
        #4  0x00007ffff7530f9e in std::__glibcxx_assert_fail(char const*, int, 
char const*, char const*) () from /lib/x86_64-linux-gnu/libstdc++.so.6
        #5  0x00005555555bacd0 in std::vector<ChainedMatchPos, 
std::allocator<ChainedMatchPos> >::operator[] (this=<optimized out>, 
__n=<optimized out>)
            at /usr/include/c++/14/bits/stl_vector.h:1128
        #6  std::vector<ChainedMatchPos, std::allocator<ChainedMatchPos> 
>::operator[]
            (this=<optimized out>, __n=<optimized out>)
            at /usr/include/c++/14/bits/stl_vector.h:1128
        #7  RemoveOverlappingAnchors<std::vector<ChainedMatchPos, 
std::allocator<ChainedMatchPos> > > (matchList=std::vector of length 34, 
capacity 64 = {...})
            at 
/usr/include/pbseq/alignment/algorithms/anchoring/FindMaxIntervalImpl.hpp:144
        #8  0x00005555555cd01f in MapRead<SMRTSequence, FASTASequence, 
SuffixArray<unsigned char, std::vector<int, std::allocator<int> >, 
DefaultCompareStrings<unsigned char>, DNATuple>, TupleCountTable<FASTASequence, 
DNATuple> > (read=..., 
            readRC=..., genome=..., sarray=..., bwt=..., seqBoundary=..., 
ct=..., 
            seqdb=..., params=..., metrics=..., alignmentPtrs=..., 
mappingBuffers=..., 
            mapData=<optimized out>, semaphores=...)
            at ../iblasr/BlasrAlignImpl.hpp:149
        #9  0x0000555555591364 in MapReadsNonCCS (
            mapData=mapData@entry=0x555555691f38, mappingBuffers=..., 
smrtRead=..., 
            smrtReadRC=..., subreads=std::vector of length 0, capacity 0, 
params=..., 
            associatedRandInt=@0x7fffffffa73c: 813429720, 
allReadAlignments=..., 
            threadOut=...) at ../Blasr.cpp:347
        #10 0x0000555555595119 in MapReads 
(mapData=mapData@entry=0x555555691f38)
            at ../Blasr.cpp:763
        #11 0x000055555556c77f in main (argc=<optimized out>, argv=<optimized 
out>)
            at ../Blasr.cpp:1376

There does not seem to have been much changes.  Maybe the error
is somewhere else?  I hope I ran the test properly, it was a bit
intricate.

Have a nice day,  :)
-- 
  .''`.  Étienne Mollier <emoll...@debian.org>
 : :' :  pgp: 8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
 `. `'   sent from /dev/pts/1, please excuse my verbosity
   `-

Attachment: signature.asc
Description: PGP signature

Reply via email to