Hi,

I’m having trouble using SSH for the control channel and UDT for the data 
channel with gridftp.  I used the yum repos to install the globus-gridftp group 
of packages on two systems.  I did not separately install UDT from source, 
since the library is provided by the globus-xio-udt-driver package at 
/usr/lib64/globus/libudt.so.  Installing UDT from source does not seem to help 
though.  I have the “dc_whitelist udt,gsi,tcp” line in /etc/gridftp.conf on the 
server.

I am able to successfully use the default TCP based protocol for data movement. 
 On the server my /etc/grid-security/sshftp file contains the following:

exec $GLOBUS_LOCATION/sbin/globus-gridftp-server -ssh -allow-udt -threads 1

When I perform a copy, I’m using the following on the client:

globus-url-copy -vb -udt file:///tmp/100mb sshftp://<hostname>/tmp/

The transfer succeeds, but doesn’t use UDT (it is a similar speed as the TCP 
test and tcpdump confirms no UDP packets are transferred).  I am able to 
successfully make a UDT based transfer between the same two machines using UDR 
(https://github.com/LabAdvComp/UDR).

Strace shows that the server is attempting to use the library:

# strace /usr/sbin/globus-gridftp-server -ssh -allow-udt -threads 1 2>&1 | grep 
udt
execve("/usr/sbin/globus-gridftp-server", ["/usr/sbin/globus-gridftp-server", 
"-ssh", "-allow-udt", "-threads", "1"], [/* 32 vars */]) = 0
open("/usr/lib64/libglobus_xio_udt_driver.la", O_RDONLY) = -1 ENOENT (No such 
file or directory)
open("/lib64/libglobus_xio_udt_driver.la", O_RDONLY) = -1 ENOENT (No such file 
or directory)
open("/usr/lib64/libglobus_xio_udt_driver.la", O_RDONLY) = -1 ENOENT (No such 
file or directory)
access("/usr/lib64/libglobus_xio_udt_driver.so", R_OK) = 0
open("/usr/lib64/libglobus_xio_udt_driver.so", O_RDONLY) = 8
open("/usr/lib64/globus/tls/x86_64/libudt.so", O_RDONLY) = -1 ENOENT (No such 
file or directory)
open("/usr/lib64/globus/tls/libudt.so", O_RDONLY) = -1 ENOENT (No such file or 
directory)
open("/usr/lib64/globus/x86_64/libudt.so", O_RDONLY) = -1 ENOENT (No such file 
or directory)
open("/usr/lib64/globus/libudt.so", O_RDONLY) = 8

But the client does not seem to try when following the documentation:

# strace globus-url-copy -vb -udt file:///tmp/100mb sshftp://euabzlw138/tmp/ 
2>&1 | grep udt
execve("/usr/bin/globus-url-copy", ["globus-url-copy", "-vb", "-udt", 
"file:///tmp/100mb", "sshftp://euabzlw138/tmp/";], [/* 49 vars */]) = 0

# env | grep GLOBUS
GLOBUS_THREAD_MODEL=pthread

Any ideas on how I trigger the toolkit to use UDT?  I’ve tried following the 
documentation, looking for bugs in Jira, and looking through mailing list 
archives and am at a dead end.

Thanks in advance,
Shawn

Reply via email to