Hello,
I want to download some list of files from alien. In loop by files for some of them TFile::Cp handles and can’t get the file due to connection problems. To avoid it I try to open the file and skip it if failed , since TFile::Open has timeout option. But once timeout had been reached for some file and it is skipped, I get “segmentation violation” on calling TFile::Cp(sourceUrl,destUrl) for next file, wich was successfully opened.
Can someone help me with this? How should I download a list of files ? Maybe there are other ways to avoid handling of TFile::Cp ?
Thanks a lot,
Rishat
Here some code:
TList* fileList; //list of file urls
TString* destDir = "destination directory/";
for(Int_t i = 0; i < fileList->GetEntries(); i++){
TString* fileurl = (TString*)fileList->At(i);
TFile* sfile = 0;
if(OpenAlienFile(0, str_path.c_str(), sfile) < 0){
Printf("Cant open file: %s", fileurl->Data());
log << Form("Cant open file: %s", fileurl->Data());
if(sfile) sfile->Close("R");
delete sfile;
delete gFile;
continue;
}
else {
system(Form("mkdir -p %s", destDir.Data());
TString localPath = Form("%s/%d.root", destDir.Data(), i);
if(TFile::Cp(fileurl->Data(), localPath.Data())) myfile << Form("%s\n",localPath.Data());
else Printf("Failed to copy file");
}
if(sfile) sfile->Close("R");
if(sfile) delete sfile;
}
//-----------
Int_t OpenAlienFile(Int_t trial, char* fileUrl, TFile* file){
if(fileUrl){
file = TFile::Open(fileUrl, "TIMEOUT=120 READ");
if(!file){
if(trial<=2){
Printf(Form("::Message: Could not open file %s (trial %d), try again ...", fileUrl, trial));
OpenAlienFile(trial+1, fileUrl, file);
} else {
Printf(Form("::Error: Could not open file %s, give up ...",fileUrl));
return -1;
}
}
else {Printf(Form("::Success: File opened: %s.", fileUrl)); return 0;}
}
else {
Printf(Form("::Error: No file url: %s.", fileUrl));
}
return -1;
}
Here is stack trace:
*** Break *** segmentation violation
===========================================================
There was a crash (#8 0xb2e1bb1d in SigHandler(ESignals) ()).
This is the entire stack trace of all threads:
===========================================================
Thread 8 (Thread 0xb24e0b70 (LWP 20939)):
#0 0x00ea0422 in __kernel_vsyscall ()
#1 0x0872ace6 in nanosleep () from /lib/tls/i686/cmov/libc.so.6
#2 0x0872ab10 in sleep () from /lib/tls/i686/cmov/libc.so.6
#3 0x07b6892e in GarbageCollectorThread (arg=0xa734b80, thr=0xa734c28)
at XrdClientConnMgr.cc:73
#4 0x07b77b05 in XrdClientThreadDispatcher (arg=0xa734c34)
at XrdClientThread.cc:32
#5 0x07ab5d4d in XrdSysThread_Xeq ()
from /opt/alice/root/v5-28-00a/lib/libNetx.so
#6 0x0091196e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7 0x08760a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 7 (Thread 0xb19b9b70 (LWP 20940)):
#0 0x00ea0422 in __kernel_vsyscall ()
#1 0x08752b86 in poll () from /lib/tls/i686/cmov/libc.so.6
#2 0x07b540b5 in XrdClientSock::RecvRaw (this=0xaf8d6f0, buffer=0xb0dce34,
length=8, substreamid=-1, usedsubstreamid=0xb19b9138)
at XrdClientSock.cc:131
#3 0x07b70848 in XrdClientPhyConnection::ReadRaw (this=0xaf8cb00,
buf=0xb0dce34, len=8, substreamid=-1, usedsubstreamid=0xb19b9138)
at XrdClientPhyConnection.cc:362
#4 0x07b6d373 in XrdClientMessage::ReadRaw (this=0xb0dce10, phy=0xaf8cb00)
at XrdClientMessage.cc:152
#5 0x07b6fe08 in XrdClientPhyConnection::BuildMessage (this=0xaf8cb00,
IgnoreTimeouts=true, Enqueue=true) at XrdClientPhyConnection.cc:443
#6 0x07b705cf in SocketReaderThread (arg=0xaf8cb00, thr=0xaf8ab38)
at XrdClientPhyConnection.cc:61
#7 0x07b77b05 in XrdClientThreadDispatcher (arg=0xaf8ab44)
at XrdClientThread.cc:32
#8 0x07ab5d4d in XrdSysThread_Xeq ()
from /opt/alice/root/v5-28-00a/lib/libNetx.so
#9 0x0091196e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#10 0x08760a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 6 (Thread 0xb07ffb70 (LWP 20947)):
#0 0x00ea0422 in __kernel_vsyscall ()
#1 0x08752b86 in poll () from /lib/tls/i686/cmov/libc.so.6
#2 0x07b540b5 in XrdClientSock::RecvRaw (this=0xb04c020, buffer=0xb1b94ec,
length=8, substreamid=-1, usedsubstreamid=0xb07ff138)
at XrdClientSock.cc:131
#3 0x07b70848 in XrdClientPhyConnection::ReadRaw (this=0xb04a5c0,
buf=0xb1b94ec, len=8, substreamid=-1, usedsubstreamid=0xb07ff138)
at XrdClientPhyConnection.cc:362
#4 0x07b6d373 in XrdClientMessage::ReadRaw (this=0xb1b94c8, phy=0xb04a5c0)
at XrdClientMessage.cc:152
#5 0x07b6fe08 in XrdClientPhyConnection::BuildMessage (this=0xb04a5c0,
IgnoreTimeouts=true, Enqueue=true) at XrdClientPhyConnection.cc:443
#6 0x07b705cf in SocketReaderThread (arg=0xb04a5c0, thr=0xb01f140)
at XrdClientPhyConnection.cc:61
#7 0x07b77b05 in XrdClientThreadDispatcher (arg=0xb01f14c)
at XrdClientThread.cc:32
#8 0x07ab5d4d in XrdSysThread_Xeq ()
from /opt/alice/root/v5-28-00a/lib/libNetx.so
#9 0x0091196e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#10 0x08760a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 5 (Thread 0xafffeb70 (LWP 20948)):
#0 0x00ea0422 in __kernel_vsyscall ()
#1 0x0872ace6 in nanosleep () from /lib/tls/i686/cmov/libc.so.6
#2 0x0872ab10 in sleep () from /lib/tls/i686/cmov/libc.so.6
#3 0x07b5f2aa in XrdClientConn::CheckErrorStatus (this=0xb020e30,
mex=0xb04b4d0, Retry=
0xafffdad2, CmdName=0x7ba4605 "Open")
at XrdClientConn.cc:960
#4 0x07b62650 in XrdClientConn::SendGenCommand (this=0xb020e30,
req=0xafffdfe0, reqMoreData=0xb04e724, answMoreDataAllocated=0x0,
answMoreData=0xafffdb2c, HasToAlloc=false, CmdName=0x7ba4605 "Open",
substreamid=0) at XrdClientConn.cc:632
#5 0x07b4b3bd in XrdClient::LowOpen (this=0xb01f3e8,
file=0xb04ace8 "/00/28207/65724420-a489-11df-b166-001e0bd3f44c?&authz=-----BEGIN SEALED CIPHER-----\nQPjh4PTeg-0BKrmaNUzLJjdcmkF8Dq-g9jnR5xb25AD5jajZ7UJ8jPLLWfkzP+605eHN+9QqXT5O\nX+qSn3B3QcBnHtxCYFewB1-QOTmeBdeWcHC-3eZ"..., mode=420,
options=272, additionalquery=0x0) at XrdClient.cc:1110
#6 0x07b4bb79 in XrdClient::TryOpen (this=0xb01f3e8, mode=420, options=272,
doitparallel=false) at XrdClient.cc:989
#7 0x07b4e3a8 in FileOpenerThread (arg=0xb01f3e8, thr=0xb04bf60)
at XrdClient.cc:55
#8 0x07b77b05 in XrdClientThreadDispatcher (arg=0xb04bf6c)
at XrdClientThread.cc:32
#9 0x07ab5d4d in XrdSysThread_Xeq ()
from /opt/alice/root/v5-28-00a/lib/libNetx.so
#10 0x0091196e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#11 0x08760a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 4 (Thread 0xaf7fdb70 (LWP 20952)):
#0 0x00ea0422 in __kernel_vsyscall ()
#1 0x0872ace6 in nanosleep () from /lib/tls/i686/cmov/libc.so.6
#2 0x0872ab10 in sleep () from /lib/tls/i686/cmov/libc.so.6
#3 0x07b5f2aa in XrdClientConn::CheckErrorStatus (this=0xafc6690,
mex=0xb04be98, Retry=
0xaf7fcad2, CmdName=0x7ba4605 "Open")
at XrdClientConn.cc:960
#4 0x07b62650 in XrdClientConn::SendGenCommand (this=0xafc6690,
req=0xaf7fcfe0, reqMoreData=0xb0801134, answMoreDataAllocated=0x0,
answMoreData=0xaf7fcb2c, HasToAlloc=false, CmdName=0x7ba4605 "Open",
substreamid=0) at XrdClientConn.cc:632
#5 0x07b4b3bd in XrdClient::LowOpen (this=0xb01a040,
file=0xb058f48 "/00/28207/65724420-a489-11df-b166-001e0bd3f44c?&authz=-----BEGIN SEALED CIPHER-----\nS0mxMCKVSgcXh1bxsBkkyQVpvVoqcAlv1das+7LCZmAKpDXexlGTBLbqZJGb4uzW3LjF3SPBFTQh\nBq+xTQBXK3gP39BfuZMMOCd6twJgDu+QtUtFK8Y"..., mode=420,
options=272, additionalquery=0x0) at XrdClient.cc:1110
#6 0x07b4bb79 in XrdClient::TryOpen (this=0xb01a040, mode=420, options=272,
doitparallel=false) at XrdClient.cc:989
#7 0x07b4e3a8 in FileOpenerThread (arg=0xb01a040, thr=0xb04f448)
at XrdClient.cc:55
#8 0x07b77b05 in XrdClientThreadDispatcher (arg=0xb04f454)
at XrdClientThread.cc:32
#9 0x07ab5d4d in XrdSysThread_Xeq ()
from /opt/alice/root/v5-28-00a/lib/libNetx.so
#10 0x0091196e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#11 0x08760a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 3 (Thread 0xaeffcb70 (LWP 20954)):
#0 0x00ea0422 in __kernel_vsyscall ()
#1 0x08752b86 in poll () from /lib/tls/i686/cmov/libc.so.6
#2 0x07b540b5 in XrdClientSock::RecvRaw (this=0xb0edeb0, buffer=0xb0ef68c,
length=8, substreamid=-1, usedsubstreamid=0xaeffc138)
at XrdClientSock.cc:131
#3 0x07b70848 in XrdClientPhyConnection::ReadRaw (this=0xb0ec4a8,
buf=0xb0ef68c, len=8, substreamid=-1, usedsubstreamid=0xaeffc138)
at XrdClientPhyConnection.cc:362
#4 0x07b6d373 in XrdClientMessage::ReadRaw (this=0xb0ef668, phy=0xb0ec4a8)
at XrdClientMessage.cc:152
#5 0x07b6fe08 in XrdClientPhyConnection::BuildMessage (this=0xb0ec4a8,
IgnoreTimeouts=true, Enqueue=true) at XrdClientPhyConnection.cc:443
#6 0x07b705cf in SocketReaderThread (arg=0xb0ec4a8, thr=0xb0edfe8)
at XrdClientPhyConnection.cc:61
#7 0x07b77b05 in XrdClientThreadDispatcher (arg=0xb0edff4)
at XrdClientThread.cc:32
#8 0x07ab5d4d in XrdSysThread_Xeq ()
from /opt/alice/root/v5-28-00a/lib/libNetx.so
#9 0x0091196e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#10 0x08760a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 2 (Thread 0xadffab70 (LWP 20956)):
#0 0x00ea0422 in __kernel_vsyscall ()
#1 0x08752b86 in poll () from /lib/tls/i686/cmov/libc.so.6
#2 0x07b540b5 in XrdClientSock::RecvRaw (this=0xb0d7fc0, buffer=0xb0edc24,
length=8, substreamid=-1, usedsubstreamid=0xadffa138)
at XrdClientSock.cc:131
#3 0x07b70848 in XrdClientPhyConnection::ReadRaw (this=0xb015280,
buf=0xb0edc24, len=8, substreamid=-1, usedsubstreamid=0xadffa138)
at XrdClientPhyConnection.cc:362
#4 0x07b6d373 in XrdClientMessage::ReadRaw (this=0xb0edc00, phy=0xb015280)
at XrdClientMessage.cc:152
#5 0x07b6fe08 in XrdClientPhyConnection::BuildMessage (this=0xb015280,
IgnoreTimeouts=true, Enqueue=true) at XrdClientPhyConnection.cc:443
#6 0x07b705cf in SocketReaderThread (arg=0xb015280, thr=0xb015cf0)
at XrdClientPhyConnection.cc:61
#7 0x07b77b05 in XrdClientThreadDispatcher (arg=0xb015cfc)
at XrdClientThread.cc:32
#8 0x07ab5d4d in XrdSysThread_Xeq ()
from /opt/alice/root/v5-28-00a/lib/libNetx.so
#9 0x0091196e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#10 0x08760a4e in clone () from /lib/tls/i686/cmov/libc.so.6
Thread 1 (Thread 0xb250b6d0 (LWP 20931)):
#0 0x00ea0422 in __kernel_vsyscall ()
#1 0x0872a7fb in waitpid () from /lib/tls/i686/cmov/libc.so.6
#2 0x086cbde3 in ?? () from /lib/tls/i686/cmov/libc.so.6
#3 0x086cc172 in system () from /lib/tls/i686/cmov/libc.so.6
#4 0x0091a27d in system () from /lib/tls/i686/cmov/libpthread.so.0
#5 0xb2e1586d in TUnixSystem::Exec(char const*) ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#6 0xb2e1c685 in TUnixSystem::StackTrace() ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#7 0xb2e1ba0f in TUnixSystem::DispatchSignals(ESignals) ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#8 0xb2e1bb1d in SigHandler(ESignals) ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#9 0xb2e12a02 in sighandler(int) ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#10 <signal handler called>
#11 0x051c023d in TFileOpenHandle::Matches(char const*) ()
from /opt/alice/root/v5-28-00a/lib/libRIO.so.5.28
#12 0x051cbed5 in TFile::Open(char const*, char const*, char const*, int, int)
() from /opt/alice/root/v5-28-00a/lib/libRIO.so.5.28
#13 0x051cc9c3 in TFile::Cp(char const*, char const*, bool, unsigned int) ()
from /opt/alice/root/v5-28-00a/lib/libRIO.so.5.28
#14 0x0528dbed in G__G__IO_111_0_126(G__value*, char const*, G__param*, int) ()
from /opt/alice/root/v5-28-00a/lib/libRIO.so.5.28
#15 0x074adac7 in Cint::G__ExceptionWrapper(int (*)(G__value*, char const*, G__param*, int), G__value*, char*, G__param*, int) ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#16 0x0755c85f in G__execute_call ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#17 0x0755d70a in G__call_cppfunc ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#18 0x07537918 in G__interpret_func ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#19 0x07526214 in G__getfunction ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#20 0x074fedf3 in G__getitem ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#21 0x07504d87 in G__getexpr ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#22 0x0750f415 in G__test () from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#23 0x0758d936 in G__exec_statement ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#24 0x0758aa8f in G__exec_statement ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#25 0x07590758 in G__exec_statement ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#26 0x0759315e in T.1480 () from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#27 0x0758f405 in G__exec_statement ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#28 0x07538dc8 in G__interpret_func ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#29 0x07526279 in G__getfunction ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#30 0x074fedf3 in G__getitem ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#31 0x07504d87 in G__getexpr ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#32 0x0758c2d4 in G__exec_statement ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#33 0x074e9da1 in G__exec_tempfile_core ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#34 0x074ea0f9 in G__exec_tempfile_fp ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#35 0x07598b94 in G__process_cmd ()
from /opt/alice/root/v5-28-00a/lib/libCint.so.5.28
#36 0xb2dd733b in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#37 0xb2d2272c in TApplication::ProcessLine(char const*, bool, int*) ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#38 0x0443c928 in TRint::HandleTermInput() ()
from /opt/alice/root/v5-28-00a/lib/libRint.so.5.28
#39 0x0443af95 in TTermInputHandler::Notify() ()
from /opt/alice/root/v5-28-00a/lib/libRint.so.5.28
#40 0x0443de34 in TTermInputHandler::ReadNotify() ()
from /opt/alice/root/v5-28-00a/lib/libRint.so.5.28
#41 0xb2e19b97 in TUnixSystem::CheckDescriptors() ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#42 0xb2e19d65 in TUnixSystem::DispatchOneEvent(bool) ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#43 0xb2d89111 in TSystem::InnerLoop() ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#44 0xb2d8be69 in TSystem::Run() ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#45 0xb2d20977 in TApplication::Run(bool) ()
from /opt/alice/root/v5-28-00a/lib/libCore.so.5.28
#46 0x0443d6c1 in TRint::Run(bool) ()
from /opt/alice/root/v5-28-00a/lib/libRint.so.5.28
#47 0x08049a61 in main (argc=1, argv=0xbfe4fdc4)
at /opt/alice/aliroot/trunk/src/ALIROOT/aliroot.cxx:98
===========================================================
The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#11 0x051c023d in TFileOpenHandle::Matches(char const*) ()
from /opt/alice/root/v5-28-00a/lib/libRIO.so.5.28
#12 0x051cbed5 in TFile::Open(char const*, char const*, char const*, int, int)
() from /opt/alice/root/v5-28-00a/lib/libRIO.so.5.28
#13 0x051cc9c3 in TFile::Cp(char const*, char const*, bool, unsigned int) ()
from /opt/alice/root/v5-28-00a/lib/libRIO.so.5.28
===========================================================
copyFilesAlien2Loc.C (3.14 KB)