BenLangmead / bowtie

An ultrafast memory-efficient short read aligner
Other
257 stars 76 forks source link

Cline paired 2 (fw:1, sam:1) test aborted with -Wp,-D_GLIBCXX_ASSERTIONS #136

Open junaruga opened 1 year ago

junaruga commented 1 year ago

When building bowtie 1.3.1 on Fedora rawhide (development version = version 39) on the build environment on the Fedora project, I saw one test failure. Below is my initial debug on the environment. I will try to create a minimal reproducer. But if you find the cause in the log, please let me know. The CPU is x86_64. The g++ version is 13.0.1 (RPM package version: 13.0.1-0.2.fc38).

Test failure

The full log is here.

+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib64:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
...
+ /usr/bin/make -O -j8 V=1 VERBOSE=1 allall EXTRA_FLAGS=-g
g++ -O3 \
    -DCOMPILER_OPTIONS="\"-O3 -g -Wl,--hash-style=both -DPOPCNT_CAPABILITY -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer   -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  \"" -g -Wl,--hash-style=both -DPOPCNT_CAPABILITY -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer   -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer   \
    -fno-strict-aliasing -DBOWTIE_VERSION="\"`cat VERSION`\"" -DBUILD_HOST="\"reproduciblebuild\"" -DBUILD_TIME="\"2023-02-17T00:00:00\"" -DCOMPILER_VERSION="\"`g++ -v 2>&1 | tail -1`\"" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE  -DPREFETCH_LOCALITY=2 -DBOWTIE_MM -DBOWTIE_SHARED_MEM -Wall -Wno-unused-parameter -Wno-reorder \
     -I third_party -I . \
    -o bowtie-inspect-s bowtie_inspect.cpp \
    ccnt_lut.cpp ref_read.cpp alphabet.cpp shmem.cpp edit.cpp ebwt.cpp bt2_locks.cpp tinythread.cpp \
    -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes   -lz -lpthread
...
+ scripts/test/simple_tests.pl --bowtie=./bowtie --bowtie-build=./bowtie-build
...
Cline paired 2 (fw:1, sam:1)
References:
>0
AGCATCGATCAAAAACTGA
./bowtie-build  --threads 1 --quiet --sanity  .simple_tests.pl.fa .simple_tests.tmp
./bowtie --debug   -s 1 -S --quiet -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII
Setting the index via positional argument will be deprecated in a future release. Please use -x option instead.
/usr/include/c++/13/bits/stl_queue.h:725: std::priority_queue<_Tp, _Sequence, _Compare>::const_reference std::priority_queue<_Tp, _Sequence, _Compare>::top() const [with _Tp = Branch*; _Sequence = std::vector<Branch*>; _Compare = CostCompare; const_reference = Branch* const&]: Assertion '!this->empty()' failed.
bowtie aborted with exitlevel 134

Then ran the 2 commands above just in case.

$ ./bowtie-build  --threads 1 --quiet --sanity  .simple_tests.pl.fa .simple_tests.tmp

$ echo $?
0

$ ./bowtie --debug   -s 1 -S --quiet -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII
Setting the index via positional argument will be deprecated in a future release. Please use -x option instead.
/usr/include/c++/13/bits/stl_queue.h:725: std::priority_queue<_Tp, _Sequence, _Compare>::const_reference std::priority_queue<_Tp, _Sequence, _Compare>::top() const [with _Tp = Branch*; _Sequence = std::vector<Branch*>; _Compare = CostCompare; const_reference = Branch* const&]: Assertion '!this->empty()' failed.
Aborted (core dumped)

$ echo $?
134

Then ran the command below to find the executed binary command line internally in the Python script bowtie. It was to un the command line with gdb.

$ ./bowtie --debug --verbose  -s 1 -S -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII 2>&1| grep 'Command:'
INFO: Command: /builddir/build/BUILD/bowtie-1.3.1-src/bowtie-align-s-debug --wrapper basic-0 -s 1 -S -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII --verbose

GDB backtrace

Before debugging with gdb, I installed the debug info pakcages on the environment.

# dnf debuginfo-install glibc-2.37-1.fc38.x86_64 libgcc-13.0.1-0.2.fc38.x86_64 libstdc++-13.0.1-0.2.fc38.x86_64

Then below is the gdb backtrace.

$ gdb -q -ex "set breakpoint pending on" -ex "set debuginfod enabled on" --args \
  ./bowtie-align-s-debug --wrapper basic-0 -s 1 -S -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII --verbose
Reading symbols from ./bowtie-align-s-debug...
(gdb) b main
Breakpoint 1 at 0x10300: file /builddir/build/BUILD/bowtie-1.3.1-src/bowtie_main.cpp, line 31.
(gdb) r
Starting program: /builddir/build/BUILD/bowtie-1.3.1-src/bowtie-align-s-debug --wrapper basic-0 -s 1 -S -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII --verbose
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Breakpoint 1, main (argc=14, argv=0x7fffffffe278) at /builddir/build/BUILD/bowtie-1.3.1-src/bowtie_main.cpp:31
31  int main(int argc, const char **argv) {
(gdb) c
Continuing.
Setting the index via positional argument will be deprecated in a future release. Please use -x option instead.
Input ebwt file: ".simple_tests.tmp"
Query inputs (DNA, Chained):
Quality inputs:
Output file: ""
Local endianness: little
Sanity checking: disabled
Assertions: enabled
Entered driver(): 22:23:57
Trying .simple_tests.tmp
Creating paired-end patsrcs: 22:23:57
Creating single-end patsrcs: 22:23:57
Creating PatternSource: 22:23:57
Opening hit output file: 22:23:57
About to initialize fw Ebwt: 22:23:57
  About to open input files: 22:23:57
Opening ".simple_tests.tmp.1.ebwt"
Opening ".simple_tests.tmp.2.ebwt"
  Finished opening input files: 22:23:57
  Reading header: 22:23:57
Headers:
    len: 19
    bwtLen: 20
    sz: 5
    bwtSz: 5
    lineRate: 6
    linesPerSide: 1
    offRate: 5
    offMask: 0xffffffe0
    isaRate: -1
    isaMask: 0xffffffff
    ftabChars: 10
    eftabLen: 20
    eftabSz: 80
    ftabLen: 1048577
    ftabSz: 4194308
    offsLen: 1
    offsSz: 4
    isaLen: 0
    isaSz: 0
    lineSz: 64
    sideSz: 64
    sideBwtSz: 56
    sideBwtLen: 224
    numSidePairs: 1
    numSides: 2
    numLines: 2
    ebwtTotLen: 128
    ebwtTotSz: 128
    reverse: 0
Reading plen (1): 22:23:57
About to initialize rev Ebwt: 22:23:57
  About to open input files: 22:23:57
Opening ".simple_tests.tmp.rev.1.ebwt"
Opening ".simple_tests.tmp.rev.2.ebwt"
  Finished opening input files: 22:23:57
  Reading header: 22:23:57
Headers:
    len: 19
    bwtLen: 20
    sz: 5
    bwtSz: 5
    lineRate: 6
    linesPerSide: 1
    offRate: 5
    offMask: 0xffffffe0
    isaRate: -1
    isaMask: 0xffffffff
    ftabChars: 10
    eftabLen: 20
    eftabSz: 80
    ftabLen: 1048577
    ftabSz: 4194308
    offsLen: 1
    offsSz: 4
    isaLen: 0
    isaSz: 0
    lineSz: 64
    sideSz: 64
    sideBwtSz: 56
    sideBwtLen: 224
    numSidePairs: 1
    numSides: 2
    numLines: 2
    ebwtTotLen: 128
    ebwtTotSz: 128
    reverse: 0
Reading plen (1): 22:23:57
Creating HitSink: 22:23:57
Dispatching to search driver: 22:23:57
Read 1 reference strings (1 non-empty) from 1 records: 22:23:57
  About to open input files: 22:23:57
Opening ".simple_tests.tmp.1.ebwt"
Opening ".simple_tests.tmp.2.ebwt"
  Finished opening input files: 22:23:57
  Reading header: 22:23:57
Reading plen (1): 22:23:57
Reading rstarts (3): 22:23:57
Reading ebwt (128): 22:23:57
Reading fchr (5)
Reading ftab (1048577): 22:23:57
Reading eftab (20): 22:23:57
Reading offs (1 32-bit words): 22:23:57
Reading isa (0): 22:23:57
Headers:
    len: 19
    bwtLen: 20
    sz: 5
    bwtSz: 5
    lineRate: 6
    linesPerSide: 1
    offRate: 5
    offMask: 0xffffffe0
    isaRate: -1
    isaMask: 0xffffffff
    ftabChars: 10
    eftabLen: 20
    eftabSz: 80
    ftabLen: 1048577
    ftabSz: 4194308
    offsLen: 1
    offsSz: 4
    isaLen: 0
    isaSz: 0
    lineSz: 64
    sideSz: 64
    sideBwtSz: 56
    sideBwtLen: 224
    numSidePairs: 1
    numSides: 2
    numLines: 2
    ebwtTotLen: 128
    ebwtTotSz: 128
    reverse: 0
Ebwt (memory):
    zOff: 5
    zEbwtByteOff: 54
    zEbwtBpOff: 2
    nPat: 1
    plen: non-NULL, [0] = 19
    rstarts: non-NULL, [0] = 0
    ebwt: non-NULL, [0] = 
    fchr: non-NULL, [0] = 0
    ftab: non-NULL, [0] = 0
    eftab: non-NULL, [0] = 0
    offs: non-NULL, [0] = 10
  About to open input files: 22:23:57
Opening ".simple_tests.tmp.rev.1.ebwt"
Opening ".simple_tests.tmp.rev.2.ebwt"
  Finished opening input files: 22:23:57
  Reading header: 22:23:57
Reading plen (1): 22:23:57
Reading rstarts (3): 22:23:57
Reading ebwt (128): 22:23:57
Reading fchr (5)
Reading ftab (1048577): 22:23:57
Reading eftab (20): 22:23:57
Reading offs (1 32-bit words): 22:23:57
Reading isa (0): 22:23:57
Headers:
    len: 19
    bwtLen: 20
    sz: 5
    bwtSz: 5
    lineRate: 6
    linesPerSide: 1
    offRate: 5
    offMask: 0xffffffe0
    isaRate: -1
    isaMask: 0xffffffff
    ftabChars: 10
    eftabLen: 20
    eftabSz: 80
    ftabLen: 1048577
    ftabSz: 4194308
    offsLen: 1
    offsSz: 4
    isaLen: 0
    isaSz: 0
    lineSz: 64
    sideSz: 64
    sideBwtSz: 56
    sideBwtLen: 224
    numSidePairs: 1
    numSides: 2
    numLines: 2
    ebwtTotLen: 128
    ebwtTotSz: 128
    reverse: 0
Ebwt (memory):
    zOff: 7
    zEbwtByteOff: 54
    zEbwtBpOff: 0
    nPat: 1
    plen: non-NULL, [0] = 19
    rstarts: non-NULL, [0] = 0
    ebwt: non-NULL, [0] = 
    fchr: non-NULL, [0] = 0
    ftab: non-NULL, [0] = 0
    eftab: non-NULL, [0] = 4
    offs: non-NULL, [0] = 4
initRangeSource minCost: 0
1: Pushing 1, 0x7ffff321e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff321e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff321e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff321e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff321e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff321e010, 0, 0, 0, 1->0
initRangeSource minCost: 16414
1: Pushing 1, 0x7ffff329e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff329e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff329e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff329e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff329e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff329e010, 0, 0, 0, 1->0
initRangeSource minCost: 32828
1: Pushing 1, 0x7ffff331e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff331e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff331e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff331e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff331e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff331e010, 0, 0, 0, 1->0
initRangeSource minCost: 0
1: Pushing 1, 0x7ffff339e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff339e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff339e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff339e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff339e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff339e010, 0, 0, 0, 1->0
initRangeSource minCost: 16414
1: Pushing 1, 0x7ffff341e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff341e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff341e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff341e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff341e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff341e010, 0, 0, 0, 1->0
initRangeSource minCost: 32828
1: Pushing 1, 0x7ffff349e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff349e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff349e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff349e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff349e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff349e010, 0, 0, 0, 1->0
initRangeSource minCost: 0
1: Pushing 1, 0x7ffff351e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff351e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff351e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff351e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff351e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff351e010, 0, 0, 0, 1->0
initRangeSource minCost: 16414
1: Pushing 1, 0x7ffff359e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff359e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff359e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff359e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff359e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff359e010, 0, 0, 0, 1->0
initRangeSource minCost: 32828
1: Pushing 1, 0x7ffff361e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff361e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff361e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff361e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff361e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff361e010, 0, 0, 0, 1->0
initRangeSource minCost: 0
1: Pushing 1, 0x7ffff369e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
initRangeSource minCost: 16414
1: Pushing 1, 0x7ffff371e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff371e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff371e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff371e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff371e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff371e010, 0, 0, 0, 1->0
initRangeSource minCost: 32828
1: Pushing 1, 0x7ffff379e010, 0, 0, 0, 0->1
1: Fronting 1, 0x7ffff379e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff379e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff379e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff379e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff379e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
  <R 000000 000000    = = = = = = = = = = 
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
  <R 000000 000000    = = = = = = = = = T 
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 0, 0, 1->0
  <R 000000 000000    = = = = = = = = C T 
1: Fronting 1, 0x7ffff369e010, 0, 1, 1, 1->0
1: Fronting 1, 0x7ffff369e010, 0, 1, 1, 1->0
1: Popping 1, 0x7ffff369e010, 0, 1, 1, 1->0
/usr/include/c++/13/bits/stl_queue.h:725: std::priority_queue<_Tp, _Sequence, _Compare>::const_reference std::priority_queue<_Tp, _Sequence, _Compare>::top() const [with _Tp = Branch*; _Sequence = std::vector<Branch*>; _Compare = CostCompare; const_reference = Branch* const&]: Assertion '!this->empty()' failed.

Program received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44        return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007ffff7aafc03 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007ffff7a5eaee in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff7a4787f in __GI_abort () at abort.c:79
#4  0x00007ffff7cdf340 in std::__glibcxx_assert_fail (file=file@entry=0x555555645410 "/usr/include/c++/13/bits/stl_queue.h", line=line@entry=725, 
    function=function@entry=0x555555645320 "std::priority_queue<_Tp, _Sequence, _Compare>::const_reference std::priority_queue<_Tp, _Sequence, _Compare>::top() const [with _Tp = Branch*; _Sequence = std::vector<Branch*>; _Compare = CostCompare;"..., condition=condition@entry=0x555555644ff2 "!this->empty()") at ../../../../../libstdc++-v3/src/c++11/debug.cc:61
#5  0x000055555557b10f in std::priority_queue<Branch*, std::vector<Branch*, std::allocator<Branch*> >, CostCompare>::top (this=<optimized out>) at /usr/include/c++/13/bits/stl_queue.h:723
#6  std::priority_queue<Branch*, std::vector<Branch*, std::allocator<Branch*> >, CostCompare>::top (this=<optimized out>) at /usr/include/c++/13/bits/stl_queue.h:723
#7  BranchQueue::front (this=<optimized out>) at /builddir/build/BUILD/bowtie-1.3.1-src/range_source.h:1164
#8  0x000055555557be55 in PathManager::pop (this=this@entry=0x55555569aab0) at /builddir/build/BUILD/bowtie-1.3.1-src/range_source.h:1353
#9  0x000055555557c3a8 in PathManager::curtail (this=0x55555569aab0, br=0x7ffff369e010, qlen=10, seedLen=<optimized out>, qualOrder=<optimized out>) at /builddir/build/BUILD/bowtie-1.3.1-src/range_source.h:1444
#10 0x000055555558c14e in EbwtRangeSource::advanceBranch (this=0x55555569a4d0, until=<optimized out>, minCost=<optimized out>, pm=...) at /builddir/build/BUILD/bowtie-1.3.1-src/ebwt_search_backtrack.h:2328
#11 0x00005555556066af in SingleRangeSourceDriver<EbwtRangeSource>::advanceImpl (this=0x55555569aa40, until=2) at /builddir/build/BUILD/bowtie-1.3.1-src/range_source.h:1789
#12 0x00005555555f046e in RangeSourceDriver<EbwtRangeSource>::advance (this=0x55555569aa40, until=<optimized out>) at /builddir/build/BUILD/bowtie-1.3.1-src/range_source.h:1643
#13 0x00005555555fe5ec in CostAwareRangeSourceDriver<EbwtRangeSource>::advanceImpl (this=0x55555569dbf0, until=2) at /builddir/build/BUILD/bowtie-1.3.1-src/range_source.h:2189
#14 0x00005555555f0731 in CostAwareRangeSourceDriver<EbwtRangeSource>::advance (this=0x55555569dbf0, until=<optimized out>) at /builddir/build/BUILD/bowtie-1.3.1-src/range_source.h:2149
#15 0x0000555555604bc1 in PairedBWAlignerV1<EbwtRangeSource>::advanceOrientation (pairFw=true, this=0x55555569b870) at /builddir/build/BUILD/bowtie-1.3.1-src/aligner.h:1268
#16 PairedBWAlignerV1<EbwtRangeSource>::advance (this=0x55555569b870) at /builddir/build/BUILD/bowtie-1.3.1-src/aligner.h:842
#17 0x0000555555633a22 in MixedMultiAligner::run(bool, int) [clone .constprop.0] (this=this@entry=0x7fffffffd9b0, tid=<optimized out>, verbose=false) at /builddir/build/BUILD/bowtie-1.3.1-src/aligner.h:279
#18 0x00005555555edafe in seededQualSearchWorkerFullStateful (vp=0x55555568c3d0) at /builddir/build/BUILD/bowtie-1.3.1-src/ebwt_search.cpp:2703
#19 0x0000555555639934 in seededQualCutoffSearchFull(int, int, int, PatternComposer&, HitSink&, Ebwt&, Ebwt&, EList<SString<char>, 128>&) [clone .isra.0] (qualCutoff=<optimized out>, seedMms=<optimized out>, 
    _patsrc=..., _sink=..., ebwtFw=..., ebwtBw=..., os=..., seedLen=<optimized out>) at /builddir/build/BUILD/bowtie-1.3.1-src/ebwt_search.cpp:2815
#20 0x000055555561d5c7 in driver(char const*, 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&, EList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, 128> const&, EList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, 128> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [clone .constprop.0] (queries=..., outfile="", query=..., qualities=..., ebwtFileBase=..., type=<synthetic pointer>)
    at /builddir/build/BUILD/bowtie-1.3.1-src/ebwt_search.cpp:3244
#21 0x00005555555f112d in bowtie (argc=14, argv=0x7fffffffe278) at /builddir/build/BUILD/bowtie-1.3.1-src/ebwt_search.cpp:3435
#22 0x00007ffff7a48b4a in __libc_start_call_main (main=main@entry=0x555555564300 <main(int, char const**)>, argc=argc@entry=14, argv=argv@entry=0x7fffffffe278) at ../sysdeps/nptl/libc_start_call_main.h:58
#23 0x00007ffff7a48c0b in __libc_start_main_impl (main=0x555555564300 <main(int, char const**)>, argc=14, argv=0x7fffffffe278, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
    stack_end=0x7fffffffe268) at ../csu/libc-start.c:360
#24 0x00005555555653a5 in _start ()
(gdb) 

ltrace

Below is the ltrace log.

$ ltrace ./bowtie-align-s-debug --wrapper basic-0 -s 1 -S -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII --verbose >& ltrace.log

As the log is too big, I would share only the last 100 lines.

$ wc -l ltrace.log 
6051 ltrace.log

$ cat ltrace.log | tail -100
_ZNSt8ios_baseD2Ev(0x7ffc713d7c30, 0, 1, 0x7f04e8048578) = 0x7f04e804e718
_ZdlPvm(0x55c6cf3864a0, 31, 1, 0x7f04e8048578)   = 0
_ZNSt6localeD1Ev(0x7ffc713d7a70, 0x55c6cf321010, 1, 0x55c6cf386) = 0x7f04e804e718
_ZNSt8ios_baseD2Ev(0x7ffc713d7aa0, 0x55c6cf321010, 1, 0x7f04e8048578) = 0x7f04e804e718
_ZNSt8ios_baseC2Ev(0x7ffc713d7d80, 0x7f04e38de010, 0, 0x7f04e38de010) = 0x7f04e804fd20
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(0x7ffc713d7d80, 0, 0, 0x7f04e8048578) = 1
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(0x7ffc713d7d80, 0, 0x7f04e8048528, 0x7ffc713d7d80) = 1
_ZNSt6localeC1Ev(0x7ffc713d7d50, 0x7ffc713d7e50, 0x55c6cded9e68, 0x7ffc713d7d50) = 0x7f04e804fd20
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(0x7ffc713d7d80, 0x7ffc713d7d18, 0x7ffc713d7d70, 0x7ffc713d7d50) = 0
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 1, 3, 0x7f04e804fd20) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdebb157, 11, 0x7ffc713d7d71) = 0x7ffc713d7d10
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 1, 0x55c6cded9e90, 0x20676e69746e6f72) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 49) = 0x7ffc713d7d10
_ZNSo9_M_insertIPKvEERSoT_(0x7ffc713d7d10, 0x7f04e389e010, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 0) = 0x7ffc713d7d10
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 0, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 48) = 0x7ffc713d7d10
_ZNSo9_M_insertIbEERSoT_(0x7ffc713d7d10, 1, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 49) = 0x7ffc713d7d10
_ZNSo9_M_insertIbEERSoT_(0x7ffc713d7d10, 1, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 49) = 0x7ffc713d7d10
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 1, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdebb00c, 2, 49) = 0x7ffc713d7d10
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 0, 0x55c6cded9e90, 45) = 0x7ffc713d7d10
_Znwm(45, 30, 0x3fffffffffffffff, 45)            = 0x55c6cf3807d0
memcpy(0x55c6cf3807d0, "1: Fronting 1, 0x7f04e389e010, 0"..., 44) = 0x55c6cf3807d0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x55c6cdedbc80, 0x55c6cf3807d0, 44, 1) = 0x55c6cdedbc80
_ZNSo3putEc(0x55c6cdedbc80, 10, 0x7f04e8048190, 0) = 0x55c6cdedbc80
_ZNSo5flushEv(0x55c6cdedbc80, 0x7f04e7df7780, 0x7f04e8048190, 0x55c6cf335a6d1: Fronting 1, 0x7f04e389e010, 0, 1, 1, 1->0
) = 0x55c6cdedbc80
_ZdlPvm(0x55c6cf3807d0, 45, 0x7f04e8048190, 0x7f04e7d22334) = 0
_ZdlPvm(0x55c6cf3805c0, 513, 1, 0x55c6cf380)     = 0
_ZNSt6localeD1Ev(0x7ffc713d7d50, 0x55c6cf321010, 1, 0x55c6cf380) = 0x7f04e804e718
_ZNSt8ios_baseD2Ev(0x7ffc713d7d80, 0x55c6cf321010, 0x7f04e8048528, 0x7f04e8048578) = 0x7f04e804e718
_ZNSt8ios_baseC2Ev(0x7ffc713d7d80, 0, 0x7f04e8048528, 0x7f04e8048578) = 0x7f04e804fd20
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(0x7ffc713d7d80, 0, 0, 0x7f04e8048578) = 1
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(0x7ffc713d7d80, 0, 0x7f04e8048528, 0x7ffc713d7d80) = 1
_ZNSt6localeC1Ev(0x7ffc713d7d50, 0x7ffc713d7e50, 0x55c6cded9e68, 0x7ffc713d7d50) = 0x7f04e804fd20
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(0x7ffc713d7d80, 0x7ffc713d7d18, 0x7ffc713d7d70, 0x7ffc713d7d50) = 0
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 1, 3, 0x7f04e804fd20) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdebb157, 11, 0x7ffc713d7d71) = 0x7ffc713d7d10
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 1, 0x55c6cded9e90, 0x20676e69746e6f72) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 49) = 0x7ffc713d7d10
_ZNSo9_M_insertIPKvEERSoT_(0x7ffc713d7d10, 0x7f04e389e010, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 0) = 0x7ffc713d7d10
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 0, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 48) = 0x7ffc713d7d10
_ZNSo9_M_insertIbEERSoT_(0x7ffc713d7d10, 1, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 49) = 0x7ffc713d7d10
_ZNSo9_M_insertIbEERSoT_(0x7ffc713d7d10, 1, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdec4f4f, 2, 49) = 0x7ffc713d7d10
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 1, 0x55c6cded9e90, 44) = 0x7ffc713d7d10
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7d10, 0x55c6cdebb00c, 2, 49) = 0x7ffc713d7d10
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7d10, 0, 0x55c6cded9e90, 45) = 0x7ffc713d7d10
_Znwm(45, 30, 0x3fffffffffffffff, 45)            = 0x55c6cf3807d0
memcpy(0x55c6cf3807d0, "1: Fronting 1, 0x7f04e389e010, 0"..., 44) = 0x55c6cf3807d0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x55c6cdedbc80, 0x55c6cf3807d0, 44, 1) = 0x55c6cdedbc80
_ZNSo3putEc(0x55c6cdedbc80, 10, 0x7f04e8048190, 0) = 0x55c6cdedbc80
_ZNSo5flushEv(0x55c6cdedbc80, 0x7f04e7df7780, 0x7f04e8048190, 0x55c6cf335a6d1: Fronting 1, 0x7f04e389e010, 0, 1, 1, 1->0
) = 0x55c6cdedbc80
_ZdlPvm(0x55c6cf3807d0, 45, 0x7f04e8048190, 0x7f04e7d22334) = 0
_ZdlPvm(0x55c6cf3805c0, 513, 1, 0x55c6cf380)     = 0
_ZNSt6localeD1Ev(0x7ffc713d7d50, 0x55c6cf321010, 1, 0x55c6cf380) = 0x7f04e804e718
_ZNSt8ios_baseD2Ev(0x7ffc713d7d80, 0x55c6cf321010, 0x7f04e8048528, 0x7f04e8048578) = 0x7f04e804e718
_ZNSt8ios_baseC2Ev(0x7ffc713d7d40, 0, 8, 0x7f04e8048578) = 0x7f04e804fd20
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(0x7ffc713d7d40, 0, 0, 0x7f04e8048578) = 1
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(0x7ffc713d7d40, 0, 3, 0x7ffc713d7d40) = 1
_ZNSt6localeC1Ev(0x7ffc713d7d10, 0x7ffc713d7e10, 0x55c6cded9e68, 0x7ffc713d7d10) = 0x7f04e804fd20
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(0x7ffc713d7d40, 0x7ffc713d7cd8, 0x55c6cdeda000, 0x7ffc713d7d30) = 0
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7cd0, 1, 3, 0x7f04e804fd20) = 0x7ffc713d7cd0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7cd0, 0x55c6cdebb001, 10, 0x7ffc713d7d31) = 0x7ffc713d7cd0
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7cd0, 1, 0x55c6cded9e90, 0x20676e6970706f50) = 0x7ffc713d7cd0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7cd0, 0x55c6cdec4f4f, 2, 49) = 0x7ffc713d7cd0
_ZNSo9_M_insertIPKvEERSoT_(0x7ffc713d7cd0, 0x7f04e389e010, 0x55c6cded9e90, 44) = 0x7ffc713d7cd0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7cd0, 0x55c6cdec4f4f, 2, 0) = 0x7ffc713d7cd0
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7cd0, 0, 0x55c6cded9e90, 44) = 0x7ffc713d7cd0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7cd0, 0x55c6cdec4f4f, 2, 48) = 0x7ffc713d7cd0
_ZNSo9_M_insertIbEERSoT_(0x7ffc713d7cd0, 1, 0x55c6cded9e90, 44) = 0x7ffc713d7cd0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7cd0, 0x55c6cdec4f4f, 2, 49) = 0x7ffc713d7cd0
_ZNSo9_M_insertIbEERSoT_(0x7ffc713d7cd0, 1, 0x55c6cded9e90, 44) = 0x7ffc713d7cd0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7cd0, 0x55c6cdec4f4f, 2, 49) = 0x7ffc713d7cd0
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7cd0, 1, 0x55c6cded9e90, 44) = 0x7ffc713d7cd0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x7ffc713d7cd0, 0x55c6cdebb00c, 2, 49) = 0x7ffc713d7cd0
_ZNSo9_M_insertImEERSoT_(0x7ffc713d7cd0, 0, 0x55c6cded9e90, 45) = 0x7ffc713d7cd0
_Znwm(44, 30, 0x3fffffffffffffff, 44)            = 0x55c6cf3807d0
memcpy(0x55c6cf3807d0, "1: Popping 1, 0x7f04e389e010, 0,"..., 43) = 0x55c6cf3807d0
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(0x55c6cdedbc80, 0x55c6cf3807d0, 43, 1) = 0x55c6cdedbc80
_ZNSo3putEc(0x55c6cdedbc80, 10, 0x7f04e8048190, 0) = 0x55c6cdedbc80
_ZNSo5flushEv(0x55c6cdedbc80, 0x7f04e7df7780, 0x7f04e8048190, 0x55c6cf335a6c1: Popping 1, 0x7f04e389e010, 0, 1, 1, 1->0
) = 0x55c6cdedbc80
_ZdlPvm(0x55c6cf3807d0, 44, 0x7f04e8048190, 0x7f04e7d22334) = 0
_ZdlPvm(0x55c6cf3805c0, 513, 1, 0x55c6cf380)     = 0
_ZNSt6localeD1Ev(0x7ffc713d7d10, 0x55c6cf321010, 1, 0x55c6cf380) = 0x7f04e804e718
_ZNSt8ios_baseD2Ev(0x7ffc713d7d40, 0x55c6cf321010, 0x7f04e8048528, 0x7f04e8048578) = 0x7f04e804e718
_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_(0x55c6cf385390, 0x55c6cf355678, 0, 0) = 0x55c6cf385390
_ZdlPvm(0x55c6cf385390, 40, 0x55c6cf355678, 0x55c6cf355678) = 0
_ZSt21__glibcxx_assert_failPKciS0_S0_(0x55c6cdebb410, 725, 0x55c6cdebb320, 0x55c6cdebaff2/usr/include/c++/13/bits/stl_queue.h:725: std::priority_queue<_Tp, _Sequence, _Compare>::const_reference std::priority_queue<_Tp, _Sequence, _Compare>::top() const [with _Tp = Branch*; _Sequence = std::vector<Branch*>; _Compare = CostCompare; const_reference = Branch* const&]: Assertion '!this->empty()' failed.
 <no return ...>
--- SIGABRT (Aborted) ---
+++ killed by SIGABRT +++
junaruga commented 1 year ago

The SIGABRT is happening at the line below.

#7  BranchQueue::front (this=<optimized out>) at /builddir/build/BUILD/bowtie-1.3.1-> src/range_source.h:1164

https://github.com/BenLangmead/bowtie/blob/73821b466021616d0773539ec06867c968b677e9/range_source.h#L1164

junaruga commented 1 year ago

I was able to reproduce with minimal reproducing script on the current master branch <86c6d7797228ec808ace59f368979c3019471ec7>.

Without the CXXFLAGS='-Wp,-D_GLIBCXX_ASSERTIONS', the test passed.

$ g++ --version
g++ (GCC) 13.0.1 20230127 (Red Hat 13.0.1-0)
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ CXXFLAGS='-Wp,-D_GLIBCXX_ASSERTIONS' make allall

$ scripts/test/simple_tests.pl --bowtie=./bowtie --bowtie-build=./bowtie-build
...
Cline paired 2 (fw:1, sam:1)
References:
>0
AGCATCGATCAAAAACTGA
./bowtie-build  --threads 2 --quiet --sanity  .simple_tests.pl.fa .simple_tests.tmp
./bowtie --debug   -s 1 -S --quiet -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII
Setting the index via positional argument will be deprecated in a future release. Please use -x option instead.
/usr/include/c++/13/bits/stl_queue.h:725: std::priority_queue<_Tp, _Sequence, _Compare>::const_reference std::priority_queue<_Tp, _Sequence, _Compare>::top() const [with _Tp = Branch*; _Sequence = std::vector<Branch*>; _Compare = CostCompare; const_reference = Branch* const&]: Assertion '!this->empty()' failed.
bowtie aborted with exitlevel 134
$ ./bowtie-build  --threads 2 --quiet --sanity  .simple_tests.pl.fa .simple_tests.tmp

$ ./bowtie --debug   -s 1 -S --quiet -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII
Setting the index via positional argument will be deprecated in a future release. Please use -x option instead.
/usr/include/c++/13/bits/stl_queue.h:725: std::priority_queue<_Tp, _Sequence, _Compare>::const_reference std::priority_queue<_Tp, _Sequence, _Compare>::top() const [with _Tp = Branch*; _Sequence = std::vector<Branch*>; _Compare = CostCompare; const_reference = Branch* const&]: Assertion '!this->empty()' failed.
Aborted (core dumped)
junaruga commented 1 year ago

I was also able to reproduce this issue by adding the following modification on my forked repository's GitHub Actions - Ubuntu 22.04.1.

diff --git a/.github/workflows/simple_tests.yml b/.github/workflows/simple_tests.yml
index 6753530..01f66b6 100644
--- a/.github/workflows/simple_tests.yml
+++ b/.github/workflows/simple_tests.yml
@@ -42,7 +42,7 @@ jobs:
       - uses: actions/checkout@v2
       - name: Run simple tests
         run: |
-          make allall
+          CXXFLAGS='-Wp,-D_GLIBCXX_ASSERTIONS' make allall
           make simple-test
   macos:
     runs-on: macos-latest

https://github.com/junaruga/bowtie/actions/runs/4208463552/jobs/7304505628#step:3:302

Cline paired 2 (fw:1, sam:1)
References:
>0
AGCATCGATCAAAAACTGA
./bowtie-build  --threads 1 --quiet --sanity  .simple_tests.pl.fa .simple_tests.tmp
./bowtie --debug   -s 1 -S --quiet -a .simple_tests.tmp -c -1 AGCATCGATC:IIIIIIIIII,TCAGTTTTTGA:IIIIIIIIIII -2 TCAGTTTTTGA:IIIIIIIIIII,AGCATCGATC:IIIIIIIIII
Setting the index via positional argument will be deprecated in a future release. Please use -x option instead.
bowtie aborted with exitlevel 134
make: *** [Makefile:415: simple-test] Error 255
ch4rr0 commented 1 year ago

Hello Jun,

Looks like the issue is in range_source.h:1353. We pop a branch from the queue, but never check if the queue is empty before updating the minCost. A simple fix would be to wrap this assignment in an if statement.