Print

Print


Hello

I am using xrdcp from release 20050623-0016 and I copy a file from an
xrootd server to a local disk. xrdcp first contacts a redirector and then
gets redirected to the data server.

I tried the following two commands
> xrdcp -DIDebugLevel 2 root://bbr-rdr03////store/cfg/2005/06/CfgDB-20050620T211907.root  t.root
> xrdcp -DIDebugLevel 2 root://bbr-rdr-a////store/cfg/2005/06/CfgDB-20050620T211907.root  t.root

The only difference is that in the first case (bbr-rdr03) the redirector
name is used where as in the second case an alias is used that points to
the two redirectors (bbr-rdr03,bbr-rdr04) of the xrootd cluster.

The first command works fine but the second creates a core file:

> xrdcp -DIDebugLevel 2 root://bbr-rdr-a////store/cfg/2005/06/CfgDB-20050620T211907.root  t.root
.....
050627 10:48:23 27025 Xrd: SocketReaderThread: Reader Thread starting.
050627 10:48:23 001 Xrd: DoLogin: Logging into the server
[kan010.slac.stanford.edu:1094]. pid=27025 uid=wilko
050627 10:48:23 001 Xrd: SendGenCommand: Sending command
XrdClientConn::DoLogin
050627 10:48:23 001 Xrd: ReadPartialAnswer: Reading a XrdClientMessage
from the server [kan010.slac.stanford.edu:1094]...
050627 10:48:23 001 Xrd: SendGenCommand: Got (and maybe recovered) an
error from kan010.slac.stanford.edu:1094
050627 10:48:23 001 Xrd: SendGenCommand: Sending command Open
050627 10:48:23 001 Xrd: ReadPartialAnswer: Reading a XrdClientMessage
from the server [kan010.slac.stanford.edu:1094]...
050627 10:48:23 001 Xrd: Create: File opened succesfully.
Segmentation fault (core dumped)

With gdb the core file shows:
#0  0x00237057 in _int_free () from /lib/tls/libc.so.6
(gdb) where
#0  0x00237057 in _int_free () from /lib/tls/libc.so.6
#1  0x00236048 in free () from /lib/tls/libc.so.6
#2  0x0808319c in ~XrdClientString (this=0x89e80b8) at XrdClientString.cc:17
#3  0x08059efe in ~XrdClientUrlInfo (this=0x89e80b8) at XrdClientConn.hh:89
#4  0x0807a716 in ~XrdClientUrlSet (this=0xbfff9170) at XrdClientUrlSet.cc:208
#5  0x0805cf75 in XrdClient::Open(unsigned short, unsigned short) (this=0x89e3210, mode=0, options=64) at XrdClient.cc:237
#6  0x08081f95 in XrdCpWorkLst::SetSrc(XrdClient**, XrdClientString, XrdClientString, bool) (this=0x89e2598, srccli=0x809a760, url=
      {data = 0x89e3000
"root://bbr-rdr-a////store/cfg/2005/06/CfgDB-20050620T211907.root", size = 64, capacity = 256}, urlopaquedata=
      {data = 0x89e2ef8 "", size = 0, capacity = 256}, do_recurse=false) at XrdCpWorkLst.cc:53
#7  0x080592cd in main (argc=5, argv=0xbfff9534) at Xrdcp.cc:802


The core file and the output of xrdcp are available in:
/nfs/objyserv01/objy/databases/wilko/xrootd/problems/xrdcpDebug2_20050623-0016/

Using different debug levels I found that the transfer works for level 0
and 1 but fails for 2,3 and if no level is specified on the command line.

Cheers,
   Wilko