Hi Patrick, are you using it towards an xrootd cluster or a single server? I suppose the former, since you speak about a redirector. The point is that an xrootd cluster is not a file system from the semantic point of view. It is a file access system, i.e. a very fast and scalable thing where you put/get files. The overall architecture stresses this concept to achieve performance and scalability. So, ls gives a meaningful output only for the single server case, where actually you have a unique file system behind. The posix preload stuff simply translates the calls (and ls is just one of them) at the client side, but if your application desperately needs a file system-like semantic (e.g. a working ls), this is not sufficient. In the xrootd world, dirlist (i.e. ls) works only in the local fashion, locally to the server you are connected to, the redirector in your case. And the redirector has no files. This is the reason why some people around is (alpha) using the thing we call CNSd and the FUSE module, i.e. a thing which can fake file-system-like primitives like ls, and allows you to mount xrootd clusters. In general, being ls a generically non scalable primitive, it's just better if your applications do not rely on that. And we have just to keep in ming that the more we get closer (with particular sophisticated setups) to filesystem-like semantics, typically the more we well get closer to filesystem-like scalability, i.e. an order of magnitude less than what you can expect from a pure xrootd cluster setup. Fabrizio Patrick McGuigan wrote: > Hi, > > Now that I have an libXrdPosixPreload.so to use, I am running into > problems getting this to work. I am trying to set it up to support a > gridftp server but I thought I would first start with a presumably > simpler case. I just want to use "ls" against a file. The README file > for XrdPosix implies that this should work. > > I have a file available in the name space that can be copied back to the > client machine, via our redirector: > > [mcguigan@gk01 ~]$ /opt/xrootd/bin/xrdcp > root://xrdb.local:1094//xrd/test1/100mb /tmp/wood > [xrootd] Total 95.37 MB |====================| 100.00 % [115.2 MB/s] > > > > I created the following xrdrun.sh file: > > #!/bin/sh > export XROOTD_VMP='xrd.local:1094:/xroot/=/xrd/' > export LD_LIBRARY_PATH=/opt/xrootd/lib/ > export LD_DEBUG=libs > export LD_PRELOAD=/opt/xrootd/lib/libXrdPosixPreload.so > export XRDPOSIX_DEBUG=3 > $* > > Shouldn't this allow me to do: > ./xrdrun.sh ls /xroot/test1/100mb > ./xrdrun.sh ls root://xrdb.local:1094//xrd/test1/100mb > > > I receive the message "No such file or directory error" from the ls. > > With the LD_DEBUG statement I can see that the pre-load library is being > loaded and initialized just prior to ls being loaded. Also, if I > malform the VMP environment varialble, I will get an Invalid map message > from XrdPosix. I don't get any information by setting XRDPOSIX_DEBUG. > > Should this work? > > How can I debug this? I tried rebuilding the XrdPosix libraries with a > couple of very simple output statements in XrdPosixXrootPath::URL but I > get seg faults when I try to use them. > > I am working on SL4.5 X86_64. > > Any advice is greatly appreciated. > > Patrick > > >