Print

Print


It looks like a response is received twice ... or that XrdCl tries to process it twice. The second time after `class BlockResponseHandler : public XrdOucCacheIOCB` has already been deleted.

```
==2395896== Thread 75:
==2395896== Invalid write of size 4
==2395896==    at 0x10225F7D: XrdPosixFileRH::HandleResponse(XrdCl::XRootDStatus*, XrdCl::AnyObject*) (XrdPosixFileRH.cc:140)
==2395896==    by 0x105A6495: (anonymous namespace)::PgReadSubstitutionHandler::HandleResponseWithHosts(XrdCl::XRootDStatus*, XrdCl::AnyObject*, std::vector<XrdCl::HostInfo, std::allocator<XrdCl::HostInfo> >*) (XrdClFileStateHandler.cc:378)
==2395896==    by 0x105B3815: (anonymous namespace)::StatefulHandler::HandleResponseWithHosts(XrdCl::XRootDStatus*, XrdCl::AnyObject*, std::vector<XrdCl::HostInfo, std::allocator<XrdCl::HostInfo> >*) (XrdClFileStateHandler.cc:567)
==2395896==    by 0x1058BA87: XrdCl::XRootDMsgHandler::HandleResponse() (XrdClXRootDMsgHandler.cc:1603)
==2395896==    by 0x1058F472: XrdCl::XRootDMsgHandler::Process() (XrdClXRootDMsgHandler.cc:937)
==2395896==    by 0x10566D4D: XrdCl::Stream::HandleIncMsgJob::Run(void*) (XrdClStream.hh:321)
==2395896==    by 0x105E6A0C: XrdCl::JobManager::RunJobs() (XrdClJobManager.cc:153)
==2395896==    by 0x105E6A78: RunRunnerThread (XrdClJobManager.cc:34)
==2395896==    by 0x61A817E: start_thread (in /usr/lib64/libpthread-2.28.so)
==2395896==    by 0x63F9D82: clone (in /usr/lib64/libc-2.28.so)
==2395896==  Address 0x35cbdb60 is 80 bytes inside a block of size 88 free'd
==2395896==    at 0x4C3A299: operator delete(void*, unsigned long) (vg_replace_malloc.c:935)
==2395896==    by 0x11037762: XrdPfc::File::free_block(XrdPfc::Block*) (XrdPfcFile.cc:1113)
==2395896==    by 0x11037B2C: XrdPfc::File::WriteBlockToDisk(XrdPfc::Block*) (XrdPfcFile.cc:992)
==2395896==    by 0x110255BE: XrdPfc::Cache::ProcessWriteTasks() (XrdPfc.cc:342)
==2395896==    by 0x11025630: ProcessWriteTaskThread(void*) (XrdPfc.cc:65)
==2395896==    by 0x51A1DE6: XrdSysThread_Xeq (XrdSysPthread.cc:86)
==2395896==    by 0x61A817E: start_thread (in /usr/lib64/libpthread-2.28.so)
==2395896==    by 0x63F9D82: clone (in /usr/lib64/libc-2.28.so)
==2395896==  Block was alloc'd at
==2395896==    at 0x4C38145: operator new(unsigned long, std::nothrow_t const&) (vg_replace_malloc.c:530)
==2395896==    by 0x1103A460: XrdPfc::File::PrepareBlockRequest(int, XrdPfc::IO*, bool) (XrdPfcFile.cc:555)
==2395896==    by 0x1103BFC9: XrdPfc::File::Read(XrdPfc::IO*, char*, long long, int) (XrdPfcFile.cc:737)
==2395896==    by 0x110438BA: XrdPfc::IOEntireFile::Read(char*, long long, int) (XrdPfcIOEntireFile.cc:173)
==2395896==    by 0x51C4E5D: XrdOucCacheIO::Read(XrdOucCacheIOCB&, char*, long long, int) (XrdOucCache.hh:334)
==2395896==    by 0x10006691: XrdPssFile::Read(XrdSfsAio*) (XrdPssAio.cc:170)
==2395896==    by 0x4EC21AD: read (XrdOfs.cc:1414)
==2395896==    by 0x4EC21AD: XrdOfsFile::read(XrdSfsAio*) (XrdOfs.cc:1386)
==2395896==    by 0x4EA2932: CopyF2L_Add2Q (XrdXrootdNormAio.cc:131)
==2395896==    by 0x4EA2932: XrdXrootdNormAio::CopyF2L_Add2Q(XrdXrootdAioBuff*) (XrdXrootdNormAio.cc:114)
==2395896==    by 0x4EA3382: XrdXrootdNormAio::CopyF2L() (XrdXrootdNormAio.cc:218)
==2395896==    by 0x52110D6: XrdScheduler::Run() (XrdScheduler.cc:406)
==2395896==    by 0x52111F8: XrdStartWorking(void*) (XrdScheduler.cc:89)
==2395896==    by 0x51A1DE6: XrdSysThread_Xeq (XrdSysPthread.cc:86)
==2395896==
```


-- 
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/issues/1616#issuecomment-1035652916
You are receiving this because you commented.

Message ID: <[log in to unmask]>

########################################################################
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