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
