[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

salmon status in salsa



Good day,

So I have been spending some time to try to put salmon back in
working shape.  The code currently available in Salsa[1] builds
through, but fails it's test suite.  Said test is fortunately
straightforward to run, and from further analysis with the
debugger and test rebuilds with the pristine upstream source
code, I believe I isolated that the root cause of the test
failure is that salmon crashes with a segmentation fault when
built against libcereal 1.3.2, while it works properly when
built against libcereal 1.3.0, which is the version vendored by
upstream if a local copy is not available.

[1]: https://salsa.debian.org/med-team/salmon

I'm afraid I don't know in which component lies the bug
actually.  The function which triggers the segmentation fault is
from rapidjson, maybe an argument wrongly passed:

	(gdb) run
	Starting program: /usr/bin/salmon index -t transcripts.fasta -i sample_salmon_quasi_index
	[Thread debugging using libthread_db enabled]
	Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
	[2022-11-05 17:13:09.632] [jLog] [warning] The salmon index is being built without any decoy sequences.  It is recommended that decoy sequence (either computed auxiliary decoy sequence or the genome of the organism) be provided during indexing. Further details can be found at https://salmon.readthedocs.io/en/latest/salmon.html#preparing-transcriptome-indices-mapping-based-mode.
	[2022-11-05 17:13:09.633] [jLog] [info] building index
	out : sample_salmon_quasi_index
	[2022-11-05 17:13:09.633] [puff::index::jointLog] [info] Running fixFasta
	[New Thread 0x7ffff57ff6c0 (LWP 1095963)]
	
	[Step 1 of 4] : counting k-mers
	[Thread 0x7ffff57ff6c0 (LWP 1095963) exited]
	
	[2022-11-05 17:13:09.641] [puff::index::jointLog] [info] Replaced 0 non-ATCG nucleotides
	[2022-11-05 17:13:09.641] [puff::index::jointLog] [info] Clipped poly-A tails from 0 transcripts
	wrote 15 cleaned references
	
	Thread 1 "salmon" received signal SIGSEGV, Segmentation fault.
	rapidjson::PrettyWriter<rapidjson::BasicOStreamWrapper<std::ostream>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator, 2u>::StartObject (this=0x7fffffff8498) at /usr/include/rapidjson/prettywriter.h:113
	113	        new (Base::level_stack_.template Push<typename Base::Level>()) typename Base::Level(false);
	(gdb) bt
	#0  rapidjson::PrettyWriter<rapidjson::BasicOStreamWrapper<std::ostream>, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator, 2u>::StartObject (this=0x7fffffff8498) at /usr/include/rapidjson/prettywriter.h:113
	#1  cereal::JSONOutputArchive::writeName (this=0x7fffffff8360)
	    at /usr/include/cereal/archives/json.hpp:347
	#2  0x0000555555b030c8 in cereal::prologue<bool, (cereal::traits::detail::sfinae)0> (ar=...) at ./external/pufferfish/include/cereal/archives/json.hpp:891
	#3  cereal::OutputArchive<cereal::JSONOutputArchive, 0u>::process<bool&> (
	    head=@0x7fffffff8085: false, this=0x7fffffff8360)
	    at ./external/pufferfish/include/cereal/cereal.hpp:416
	#4  cereal::OutputArchive<cereal::JSONOutputArchive, 0u>::operator()<bool&> (
	    this=<optimized out>)
	    at ./external/pufferfish/include/cereal/cereal.hpp:311
	#5  cereal::save<bool&> (t=..., ar=...)
	    at ./external/pufferfish/include/cereal/archives/json.hpp:944
	#6  cereal::OutputArchive<cereal::JSONOutputArchive, 0u>::processImpl<cereal::NameValuePair<bool&>, (cereal::traits::detail::sfinae)0> (t=..., 
	    this=<optimized out>)
	    at ./external/pufferfish/include/cereal/cereal.hpp:505
	#7  cereal::OutputArchive<cereal::JSONOutputArchive, 0u>::process<cereal::NameValuePair<bool&> > (head=..., this=<optimized out>)
	    at ./external/pufferfish/include/cereal/cereal.hpp:417
	#8  cereal::OutputArchive<cereal::JSONOutputArchive, 0u>::operator()<cereal::NameValuePair<bool&> > (this=0x7fffffff8360)
	    at ./external/pufferfish/include/cereal/cereal.hpp:311
	#9  fixFasta (parser=0x7ffff6094800, decoyNames=..., keepDuplicates=false, 
	    k=31, sepStr=" \t", expect_transcriptome=true, noclip_polya=false, 
	    iomutex=..., 
	    log=std::shared_ptr<spdlog::logger> (use count 4, weak count 0) = {...}, 
	    outFile="sample_salmon_quasi_index/ref_k31_fixed.fa", 
	    refIdExtensions=std::vector of length 15, capacity 15 = {...}, 
	    shortRefs=std::vector of length 0, capacity 0)
	    at ./external/pufferfish/src/FixFasta.cpp:456
	#10 0x0000555555b06e35 in fixFastaMain (
	    args=std::vector of length 7, capacity 8 = {...}, 
	    refIdExtension=std::vector of length 15, capacity 15 = {...}, 
	    shortRefs=std::vector of length 0, capacity 0, 
	    log=std::shared_ptr<spdlog::logger> (use count 4, weak count 0) = {...}, 
	    hasFeatures=hasFeatures@entry=false)
	    at ./external/pufferfish/src/FixFasta.cpp:686
	#11 0x0000555555a891b0 in pufferfishIndex (indexOpts=...)
	    at ./external/pufferfish/src/PufferfishIndexer.cpp:432
	#12 0x0000555555663a7e in SalmonIndex::buildPuffIndex_ (idxOpt=..., 
	    indexDir=..., this=0x7ffff603f280) at ./include/SalmonIndex.hpp:111
	#13 SalmonIndex::build (idxOpt=..., indexDir=..., this=0x7ffff603f280)
	    at ./include/SalmonIndex.hpp:76
	#14 salmonIndex (argc=<optimized out>, argv=<optimized out>)
	    at ./src/BuildSalmonIndex.cpp:247
	#15 0x00005555555fe9e0 in std::function<int (int, char const**, std::unique_ptr<SalmonIndex, std::default_delete<SalmonIndex> >&)>::operator()(int, char const**, std::unique_ptr<SalmonIndex, std::default_delete<SalmonIndex> >&) const (
	--Type <RET> for more, q to quit, c to continue without paging--
	    __args#2=std::unique_ptr<SalmonIndex> = {...}, __args#1=<optimized out>, 
	    __args#0=<optimized out>, this=0x7ffff604f158)
	    at /usr/include/c++/12/bits/std_function.h:591
	#16 main (argc=<optimized out>, argv=0x7fffffffe1c8) at ./src/Salmon.cpp:267

For information,
-- 
Étienne Mollier <emollier@emlwks999.eu>
Fingerprint:  8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
Sent from /dev/tty1, please excuse my verbosity.

Attachment: signature.asc
Description: PGP signature


Reply to: