Hi Andreas, Hi Juhani,
Andreas Tille, on 2021-02-26 22:13:29 +0100:
> On Fri, Feb 26, 2021 at 09:58:11PM +0200, Juhani Numminen wrote:
> > Now when I run the self-tests, I get an Illegal Instruction error.
> >
> > > $ metaspades --test
> > >
> > ...
> > >
> > > == Error == system call for: "['/usr/libexec/spades/spades-hammer', '/home/juhani/Projektit/deb/spades/spades/spades_test/corrected/configs/config.info']" finished abnormally, OS return value: -4
> > >
> > > In case you have troubles running SPAdes, you can write to spades.support@cab.spbu.ru
> > > or report an issue on our GitHub repository github.com/ablab/spades
> > > Please provide us with params.txt and spades.log files from the output directory.
> > >
> > > SPAdes log can be found here: /home/juhani/Projektit/deb/spades/spades/spades_test/spades.log
> >
> > Here's a GDB session.
> >
> > > $ gdb /usr/libexec/spades/spades-hammer
> > ...
> > > (gdb) r /home/juhani/Projektit/deb/spades/spades/spades_test/corrected/configs/config.info
> > ...
> >
> > 0:00:00.333 1M / 83M INFO K-mer Counting (kmer_data.cpp : 309) Filtering singleton k-mers
> > 0:00:00.336 1M / 83M INFO K-mer Counting (kmer_data.cpp : 315) Processing /usr/share/spades/test_dataset/ecoli_1K_1.fq.gz
> > Thread 3 "spades-hammer" received signal SIGILL, Illegal instruction.
> > [Switching to Thread 0x7ffff7221700 (LWP 17206)]
> > offset_lower_bound (qf=0x7fffffffb760, qf=0x7fffffffb760, slot_index=2699) at ./assembler/ext/src/gqf/gqf.c:496
> > warning: Source file is more recent than executable.
> > 496 return popcnt(occupieds) - popcnt(runends);
> > (gdb) bt
> > #0 offset_lower_bound (qf=0x7fffffffb760, qf=0x7fffffffb760, slot_index=2699) at ./assembler/ext/src/gqf/gqf.c:496
> > #1 is_empty (slot_index=2699, qf=0x7fffffffb760) at ./assembler/ext/src/gqf/gqf.c:503
> > #2 insert1 (qf=0x7fffffffb760, hash=<optimized out>, lock=lock@entry=true, spin=<optimized out>) at ./assembler/ext/src/gqf/gqf.c:1032
> > #3 0x00005555555ec218 in qf_insert (qf=qf@entry=0x7fffffffb760, key=<optimized out>, value=value@entry=0, count=count@entry=1, lock=lock@entry=true, spin=spin@entry=true) at ./assembler/ext/src/gqf/gqf.c:1629
> > #4 0x00005555555a6f7f in qf::cqf::add (spin=true, lock=true, count=1, d=<optimized out>, this=0x7fffffffb760) at ./assembler/src/common/adt/cqf.hpp:44
> > #5 qf::cqf_with_hasher<Seq<21ul, unsigned long> >::add (spin=true, lock=true, count=1, o=..., this=0x7fffffffb760) at ./assembler/src/common/adt/cqf.hpp:131
> > #6 KMerMultiplicityCounter::operator() (this=0x7fffffffb760, r=std::unique_ptr<Read> = {...}) at ./assembler/src/projects/hammer/kmer_data.cpp:215
> > #7 0x000055555559c397 in hammer::ReadProcessor::_ZN6hammer13ReadProcessor3RunI11ireadstream23KMerMultiplicityCounterEEbRT_RT0_._omp_fn.0(void) () at /usr/include/c++/10/bits/unique_ptr.h:172
> > #8 0x00007ffff7c27de6 in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
> > #9 0x00007ffff7f67ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
> > #10 0x00007ffff7b2adef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> > (gdb)
> >
>
> I'd recommend forwarding this in another issue. Spades upstream is very
> quick in responding and supportive as we have seen.
This is a baseline violation caused by inlined assembler code.
If that helps, I pushed a small patch this morning to replace by
a call to __builtin_popcount, which looked more portable. I now
hit a segmentation fault when running autopkgtest and am short
on time myself to investigate further.
Anyway, I hope this helps,
--
Étienne Mollier <etienne.mollier@mailoo.org>
Fingerprint: 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