Still not quite there with multistream. The State destructor modifies a curl handle after it's been free'd. <details> <summary>Valgrind output</summary> ``` ==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 ``` </details> -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/xrootd/xrootd/pull/1449#issuecomment-833705080 ######################################################################## 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