Skip to content

Plugin segfault issue with iRODS 4.3.1 release #7

@kjsanger

Description

@kjsanger

samtools 1.18
htslib-plugins: 201712

Running the following (which is from one of our test suites which passes on iRODS 4.2.7, 4.2.11 and 4.2.12) fails on the current 4.3.1 release of iRODS. This is similar to, but not quite the same error as in #6, which is from a 4-3-stable iRODS branch prior to the release of 4.3.1.

The command producing the error is the same as #6 :

samtools view -C -T ./t/data/aln_data_object/test_ref.fa -o irods:/testZone/home/irods/Illumina::AlnDataObjectTest.53621.19/7915_5\#0.cram ./t/data/aln_data_object/7915_5\#0.sam
Reading symbols from samtools...
(gdb) run
Starting program: /usr/local/bin/samtools view -C -T ./t/data/aln_data_object/test_ref.fa -o irods:/testZone/home/irods/Illumina::AlnDataObjectTest.5733.19/7915_5\#0.cram ./t/data/aln_data_object/7915_5\#0.sam
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7a50617 in std::__1::pair<boost::unordered::detail::iterator_detail::iterator<boost::unordered::detail::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::any>, void*>, boost::unordered::detail::bucket<boost::unordered::detail::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::any>, void*>, void*> >, bool> boost::unordered::detail::table<boost::unordered::detail::map<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::any> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::any, irods::irods_string_hash, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::try_emplace_unique<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) () from /lib/libirods_client.so.4.3.1
(gdb) bt
#0  0x00007ffff7a50617 in std::__1::pair<boost::unordered::detail::iterator_detail::iterator<boost::unordered::detail::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::any>, void*>, boost::unordered::detail::bucket<boost::unordered::detail::node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::any>, void*>, void*> >, bool> boost::unordered::detail::table<boost::unordered::detail::map<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::any> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::any, irods::irods_string_hash, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::try_emplace_unique<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) () from /lib/libirods_client.so.4.3.1
#1  0x00007ffff7abf8db in irods::plugin_base::call<char const*, BytesBuf const*, BytesBuf const*, BytesBuf const*, int, iRODSProtocol>(RsComm*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::shared_ptr<irods::first_class_object>, char const*, BytesBuf const*, BytesBuf const*, BytesBuf const*, int, iRODSProtocol)::{lambda(irods::plugin_context&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, char const*, BytesBuf const*, BytesBuf const*, BytesBuf const*, int, iRODSProtocol)#1}::operator()(irods::plugin_context&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, char const*, BytesBuf const*, BytesBuf const*, BytesBuf const*, int, iRODSProtocol) const () from /lib/libirods_client.so.4.3.1
#2  0x00007ffff7abe543 in irods::error irods::plugin_base::call<char const*, BytesBuf const*, BytesBuf const*, BytesBuf const*, int, iRODSProtocol>(RsComm*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::shared_ptr<irods::first_class_object>, char const*, BytesBuf const*, BytesBuf const*, BytesBuf const*, int, iRODSProtocol) () from /lib/libirods_client.so.4.3.1
#3  0x00007ffff7aba66b in sendRodsMsg(boost::shared_ptr<irods::network_object>, char const*, BytesBuf const*, BytesBuf const*, BytesBuf const*, int, iRODSProtocol) () from /lib/libirods_client.so.4.3.1
#4  0x00007ffff7ab9a5e in sendStartupPack () from /lib/libirods_client.so.4.3.1
#5  0x00007ffff7ab89a5 in connectToRhost () from /lib/libirods_client.so.4.3.1
#6  0x00007ffff7a9f3c4 in _rcConnect () from /lib/libirods_client.so.4.3.1
#7  0x00007ffff7a9f102 in rcConnect () from /lib/libirods_client.so.4.3.1
#8  0x00007ffff7b42b00 in irods_init () at hfile_irods.c:139
#9  hopen_irods (filename=0x5555556113f0 "irods:/testZone/home/irods/Illumina::AlnDataObjectTest.5733.19/7915_5#0.cram", mode=0x7fffffffe0d0 "wc") at hfile_irods.c:267
#10 0x00007ffff7ee0cf8 in hopen (fname=fname@entry=0x5555556113f0 "irods:/testZone/home/irods/Illumina::AlnDataObjectTest.5733.19/7915_5#0.cram", mode=mode@entry=0x7fffffffe0d0 "wc") at hfile.c:1274
#11 0x00007ffff7eeada9 in hts_open_format (fn=fn@entry=0x5555556113f0 "irods:/testZone/home/irods/Illumina::AlnDataObjectTest.5733.19/7915_5#0.cram", mode=mode@entry=0x7fffffffe37c "wc", fmt=fmt@entry=0x7fffffffe220) at hts.c:908
#12 0x0000555555568652 in main_samview (argc=7, argv=0x7fffffffe4e0) at sam_view.c:1194
#13 0x00007ffff7bb5d90 in __libc_start_call_main (main=main@entry=0x5555555608b0 <main>, argc=argc@entry=8, argv=argv@entry=0x7fffffffe4d8) at ../sysdeps/nptl/libc_start_call_main.h:58
#14 0x00007ffff7bb5e40 in __libc_start_main_impl (main=0x5555555608b0 <main>, argc=8, argv=0x7fffffffe4d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe4c8) at ../csu/libc-start.c:392
--Type <RET> for more, q to quit, c to continue without paging--
#15 0x00005555555611a5 in _start ()

Full samtools details:

samtools 1.18
Using htslib 1.18
Copyright (C) 2023 Genome Research Ltd.

Samtools compilation details:
    Features:       build=configure curses=no 
    CC:             gcc
    CPPFLAGS:       -I/usr/include/irods
    CFLAGS:         -Wall -g -O2
    LDFLAGS:        
    HTSDIR:         
    LIBS:           
    CURSES_LIB:     

HTSlib compilation details:
    Features:       build=configure libcurl=yes S3=yes GCS=yes libdeflate=no lzma=yes bzip2=yes plugins=yes plugin-path=/usr/local/libexec/htslib: htscodecs=1.5.1
    CC:             gcc
    CPPFLAGS:       -I/usr/include/irods
    CFLAGS:         -Wall -g -O2 -fvisibility=hidden
    LDFLAGS:        -fvisibility=hidden -rdynamic

HTSlib URL scheme handlers present:
    built-in:    preload, data, file
    Google Cloud Storage:        gs+http, gs+https, gs
    S3 Multipart Upload:         s3w, s3w+https, s3w+http
    Amazon S3:   s3+https, s3+http, s3
    mmap:        mmap
    libcurl:     imaps, pop3, gophers, http, smb, gopher, sftp, ftps, imap, smtp, smtps, rtsp, scp, ftp, telnet, mqtt, rtmp, ldap, https, ldaps, smbs, tftp, pop3s, dict
    iRODS:       irods4.3.1, irods
    crypt4gh-needed:     crypt4gh
    mem:         mem

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions