Still not quite there with multistream. The State destructor modifies a curl handle after it's been free'd.

Valgrind output
==5729== Thread 24:
==5729== Invalid write of size 8
==5729==    at 0x127A5173: Curl_setopt (url.c:1098)
==5729==    by 0x127B373A: curl_easy_setopt (easy.c:384)
==5729==    by 0x1629095D: TPC::State::~State() (XrdTpcState.cc:22)
==5729==    by 0x1628FE77: TPC::TPCHandler::RunCurlWithStreams(XrdHttpExtReq&, TPC::State&, unsigned long, TPC::TPCHandler::TPCLogRecord&) (XrdTpcMultistream.cc:501)
==5729==    by 0x162A346E: TPC::TPCHandler::ProcessPullReq(std::string const&, XrdHttpExtReq&) (XrdTpcTPC.cc:772)
==5729==    by 0x162A3E7D: TPC::TPCHandler::ProcessReq(XrdHttpExtReq&) (XrdTpcTPC.cc:153)
==5729==    by 0xB2FFF82: XrdHttpReq::ProcessHTTPReq() (XrdHttpReq.cc:998)
==5729==    by 0xB2F7C7C: XrdHttpProtocol::Process(XrdLink*) (XrdHttpProtocol.cc:854)
==5729==    by 0x51D6B45: XrdLinkXeq::DoIt() (XrdLinkXeq.cc:319)
==5729==    by 0x51D3278: XrdLink::setProtocol(XrdProtocol*, bool, bool) (XrdLink.cc:435)
==5729==    by 0x51D9E45: XrdScheduler::Run() (XrdScheduler.cc:382)
==5729==    by 0x51D9F98: XrdStartWorking(void*) (XrdScheduler.cc:88)
==5729==  Address 0x99a4360 is 864 bytes inside a block of size 19,536 free'd


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/xrootd/xrootd/pull/1449#issuecomment-833705080", "url": "https://github.com/xrootd/xrootd/pull/1449#issuecomment-833705080", "name": "View Pull Request" }, "description": "View this Pull Request on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1