[DMC-835] Segfault in libneon when downloading large file with a bad network connection Created: 04/May/16  Updated: 04/May/16  Resolved: 04/May/16

Status: Closed
Project: DMC - Development
Component/s: Davix
Affects Version/s: None
Fix Version/s: Davix 0.6.4
Security Level: Public Data (This ticket is visible to anyone on the internet and will be indexed by search engines)

Type: Bug Priority: Minor
Reporter: Georgios Bitzes Assignee: Georgios Bitzes
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Component Watchers:

 Description   

Not sure what's the cause yet, but it seems pretty reproducible.

#0 ne_sock_read (sock=0x0, buffer=0x7ffff7fdb510 "", buflen=255) at /usr/src/debug/davix-0.6.3/deps/libneon/src/ne_socket.c:453
#1 0x000000361f6b7771 in read_response_block (req=0x7ffff01120d0, buffer=0x7ffff7fdb510 "", buflen=255)
at /usr/src/debug/davix-0.6.3/deps/libneon/src/ne_request.c:768
#2 ne_read_response_block (req=0x7ffff01120d0, buffer=0x7ffff7fdb510 "", buflen=255)
at /usr/src/debug/davix-0.6.3/deps/libneon/src/ne_request.c:813
#3 0x000000361f641332 in Davix::NEONRequest::readBlock (this=0x7ffff00009e0, buffer=0x7ffff7fdb510 "", max_size=255, err=0x0)
at /usr/src/debug/davix-0.6.3/src/neon/neonrequest.cpp:629
#4 0x000000361f67b634 in Davix::HttpRequest::readBlock (this=<value optimized out>, buffer=<value optimized out>,
max_size=<value optimized out>, err=0x0) at /usr/src/debug/davix-0.6.3/src/request/httprequest.cpp:116
#5 0x000000361f64a4c2 in Davix::HttpIO::pread (this=<value optimized out>, iocontext=..., buf=0x7fffebd45010, count=69970000, offset=0)
at /usr/src/debug/davix-0.6.3/src/fileops/iobuffmap.cpp:194
#6 0x000000361f654e25 in Davix::HttpIOChain::pread (this=<value optimized out>, iocontext=<value optimized out>, buf=<value optimized out>,
count=<value optimized out>, offset=<value optimized out>) at /usr/src/debug/davix-0.6.3/src/fileops/httpiochain.cpp:115
#7 0x000000361f654e25 in Davix::HttpIOChain::pread (this=<value optimized out>, iocontext=<value optimized out>, buf=<value optimized out>,
count=<value optimized out>, offset=<value optimized out>) at /usr/src/debug/davix-0.6.3/src/fileops/httpiochain.cpp:115
#8 0x000000361f654e25 in Davix::HttpIOChain::pread (this=<value optimized out>, iocontext=<value optimized out>, buf=<value optimized out>,
count=<value optimized out>, offset=<value optimized out>) at /usr/src/debug/davix-0.6.3/src/fileops/httpiochain.cpp:115
#9 0x000000361f665b5a in operator() (chain=<value optimized out>, io_context=..., fun=...)
at /usr/include/boost/function/function_template.hpp:1013
#10 Davix::autoRetryExecutor<boost::function<dav_ssize_t(Davix::IOChainContext&)>, long int>(Davix::HttpIOChain &, Davix::IOChainContext &, boost::function<dav_ssize_t(Davix::IOChainContext&)>) (chain=<value optimized out>, io_context=..., fun=...)
at /usr/src/debug/davix-0.6.3/src/fileops/davix_reliability_ops.cpp:297
#11 0x000000361f661631 in Davix::AutoRetryOps::pread (this=0x6214c0, iocontext=..., buf=<value optimized out>, count=<value optimized out>,
offset=<value optimized out>) at /usr/src/debug/davix-0.6.3/src/fileops/davix_reliability_ops.cpp:349
#12 0x000000361f667356 in operator() (chain=..., io_context=..., fun=...) at /usr/include/boost/function/function_template.hpp:1013
#13 Davix::metalinkExecutor<boost::function<dav_ssize_t(Davix::IOChainContext&)>, long int>(Davix::HttpIOChain &, Davix::IOChainContext &, boost::function<dav_ssize_t(Davix::IOChainContext&)>) (chain=..., io_context=..., fun=...)
at /usr/src/debug/davix-0.6.3/src/fileops/davix_reliability_ops.cpp:96
#14 0x000000361f662301 in Davix::MetalinkOps::pread (this=0x622b80, iocontext=..., buf=<value optimized out>, count=<value optimized out>,
offset=<value optimized out>) at /usr/src/debug/davix-0.6.3/src/fileops/davix_reliability_ops.cpp:254
#15 0x000000361f654e25 in Davix::HttpIOChain::pread (this=<value optimized out>, iocontext=<value optimized out>, buf=<value optimized out>,
count=<value optimized out>, offset=<value optimized out>) at /usr/src/debug/davix-0.6.3/src/fileops/httpiochain.cpp:115
#16 0x000000361f64eeb9 in Davix::HttpIOVecOps::singleRangeRequest (this=0xfb3100, iocontext=..., tree=..., offset=0, size=69970000)
at /usr/src/debug/davix-0.6.3/src/fileops/httpiovec.cpp:550
#17 0x000000361f64ef7d in Davix::parallelSingleRange (args=0x7ffffffe95b0) at /usr/src/debug/davix-0.6.3/src/fileops/httpiovec.cpp:277
#18 0x00000033b2c07aa1 in start_thread () from /lib64/libpthread.so.0
#19 0x00000033b28e893d in clone () from /lib64/libc.so.6



 Comments   
Comment by Clockwork Droid [ 04/May/16 ]

SUCCESS: Integrated in Jenkins build (devel) davix #201 (See https://jenkins.cern.ch/fts-dmc/job/(devel)%20davix/201/)
DMC-835 Dropped connection causes segfault in pread (georgios.bitzes: https://github.com/cern-it-sdc-id/davix/commit/3547bde3e98d8bcb0ea4a256d83d3d5dc2d92f56)

Generated at Wed Jun 28 21:12:32 CEST 2017 using JIRA 7.2.7#72009-sha1:68b7d86b7e8716f76c1f28a5095acccf67bb75b1.