rdesktop stats all /media dirs when copying files

Bug #248668 reported by darren
2
Affects Status Importance Assigned to Milestone
rdesktop (Ubuntu)
New
Undecided
Unassigned

Bug Description

Binary package hint: rdesktop

I have a few SSHFS FUSE mounts in /media (along with CIFS and NFS mounts)

If the SSHFS connection has dropped then I can reconnect by trying to access the dir e.g. ls /media/sshmount, this will reconnect in the background and present the files after a few seconds.

When I am in rdesktop and try to copy files using the -rdisk switch to share a local dir remotely (I use -rdisk:ubuntu=/home/darrenm) then the copy will lock up the whole X session unless I xkill rdesktop, which doesn't actually kill the process, the only way to get rid of it is to reboot.

If I strace rdesktop I can see it trying to stat every mount and when it hits one of the SSHFS mounts where the connection has dropped it locks up there. Normally fuse can reconnect in the background but this doesn't happen with rdesktop.

The interesting bit of strace is below:

select(7, [3 6], [], NULL, {60, 0}) = 1 (in [6], left {60, 0})
gettimeofday({1216118581, 549002}, NULL) = 0
recv(6, "\2\360\200h\0\1\3\355\360L\10\0\20\0\311\353\213\343\22"..., 86, 0) = 86
fstat64(8, {st_mode=S_IFREG|S_ISGID|0767, st_size=219776, ...}) = 0
send(6, "\3\0\0[\2\360\200d\0\5\3\355p\200L\10\0\0\0\254\231\341"..., 91, 0) = 91
read(3, 0x83d400c, 4096) = -1 EAGAIN (Resource temporarily unavailable)
select(7, [3 6], [], NULL, {60, 0}) = 1 (in [6], left {60, 0})
gettimeofday({1216118581, 549747}, NULL) = 0
recv(6, "\3\0\0Z", 4, 0) = 4
read(3, 0x83d400c, 4096) = -1 EAGAIN (Resource temporarily unavailable)
select(7, [3 6], [], NULL, {60, 0}) = 1 (in [6], left {60, 0})
gettimeofday({1216118581, 549936}, NULL) = 0
recv(6, "\2\360\200h\0\1\3\355\360L\10\0\20\0>\32\v\362\203\352"..., 86, 0) = 86
statfs64("/home/darrenm/Releases/WebSites/Group/SQL/Structure/1.1/eCommerce Group Structure v1.1 Upgrade from v1.0.sql", 84, {f_type=0xff534d42, f_bsize=4096, f_blocks=313749449, f_bfree=79430923, f_bavail=79430923, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=4096, f_frsize=4096}) = 0
stat64("/home/darrenm/Releases/WebSites/G/SQL/Structure/1.1/GStructure v1.1 Upgrade from v1.0.sql", {st_mode=S_IFREG|S_ISGID|0767, st_size=219776, ...}) = 0
open("/proc/mounts", O_RDONLY) = 20
fstat64(20, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f42000
read(20, "rootfs / rootfs rw 0 0\nnone /sys"..., 1024) = 1024
read(20, "me=dmansell,uid=1000,gid=1000,rs"..., 1024) = 1024
read(20, "=2.11.1.3 0 0\n192.168.73.5:/open"..., 1024) = 1024
read(20, "ow_other,max_read=65536 0 0\ndman"..., 1024) = 775
read(20, "", 1024) = 0
_llseek(20, 0, [0], SEEK_SET) = 0
read(20, "rootfs / rootfs rw 0 0\nnone /sys"..., 1024) = 1024
stat64("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/sys", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat64("/proc", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
stat64("/dev", {st_mode=S_IFDIR|0755, st_size=14100, ...}) = 0
stat64("/sys/fs/fuse/connections", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat64("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/dev/.static/dev", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/var/run", {st_mode=S_IFDIR|0755, st_size=780, ...}) = 0
stat64("/var/lock", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=60, ...}) = 0
stat64("/lib/modules/2.6.24-19-generic/volatile", {st_mode=S_IFDIR|0755, st_size=400, ...}) = 0
stat64("/dev/shm", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=40, ...}) = 0
stat64("/dev/pts", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat64("/var/run", {st_mode=S_IFDIR|0755, st_size=780, ...}) = 0
stat64("/var/lock", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=60, ...}) = 0
stat64("/var/run", {st_mode=S_IFDIR|0755, st_size=780, ...}) = 0
stat64("/var/lock", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=60, ...}) = 0
stat64("/boot", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
read(20, "me=dmansell,uid=1000,gid=1000,rs"..., 1024) = 1024
stat64("/media/fileserver/users", {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0
stat64("/media/fileserver/installs", {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0
stat64("/media/bart", {st_mode=S_IFDIR|0777, st_size=24576, ...}) = 0
stat64("/media/c", {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0
stat64("/media/dto", {st_mode=S_IFDIR|0777, st_size=77824, ...}) = 0
stat64("/media/graham2", {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0
stat64("/media/ISO", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
read(20, "=2.11.1.3 0 0\n192.168.73.5:/open"..., 1024) = 1024
stat64("/media/hostingserver", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/media/info", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
stat64("/media/test", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/media/uat",

and thats where it hangs. If I ensure all mounts are ok before running rdesktop there is no problem.

Please let me know if you need any more information.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.