You are not logged in.
Hello,
I've got a samba server on a debian testing, and am mounting one of its share via fstab on a few other machines running arch:
//ricreativo/Condivisa /media/ricreativo cifs user=cdc,pass=********* 0 0
When the server goes down, anything on the clients that tries to access /media/ricreativo hangs (this also includes umount, shutdown processes and pacman while "checking for file conflicts").
Kernel even prints something in dmesg about this problem:
[117360.364080] INFO: task ls:5959 blocked for more than 120 seconds.
[117360.364087] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[117360.364093] ls D f4aadc70 0 5959 5843 0x00000004
[117360.364106] f4aadcd4 00000086 8e407f7e f4aadc70 c102bb44 fffff000 f54a8000 c186dec0
[117360.364116] c186dec0 58771e52 00006a90 f5905ec0 f54c3300 f54a8000 00000000 f655f740
[117360.364126] 00000001 00000001 f59069e4 f655f740 f59069f4 f4aadd00 c10e63ed 00000002
[117360.364137] Call Trace:
[117360.364150] [<c102bb44>] ? kmap_atomic_prot+0xe4/0x100
[117360.364157] [<c10e63ed>] ? get_page_from_freelist+0x13d/0x2a0
[117360.364164] [<c152cc75>] schedule+0x35/0x50
[117360.364169] [<c152d816>] __mutex_lock_slowpath+0xc6/0x120
[117360.364174] [<c152d4c4>] mutex_lock+0x24/0x40
[117360.364188] [<f858087c>] cifs_reconnect_tcon+0x13c/0x2a0 [cifs]
[117360.364197] [<c128318d>] ? radix_tree_lookup_slot+0xd/0x10
[117360.364207] [<f8580e3c>] smb_init+0x2c/0x90 [cifs]
[117360.364216] [<f8585d91>] CIFSSMBUnixQPathInfo+0x61/0x2a0 [cifs]
[117360.364230] [<f8598be5>] cifs_get_inode_info_unix+0x75/0x190 [cifs]
[117360.364237] [<c113364e>] ? __follow_mount_rcu.isra.11+0x2e/0xb0
[117360.364243] [<c11348ff>] ? do_lookup+0x8f/0x270
[117360.364248] [<c1142a89>] ? vfsmount_lock_local_unlock+0x19/0x20
[117360.364255] [<c1133d05>] ? complete_walk+0x85/0x100
[117360.364263] [<c11196a5>] ? __kmalloc+0x195/0x1e0
[117360.364269] [<c1135e93>] ? path_lookupat+0x63/0x650
[117360.364281] [<f859036d>] ? build_path_from_dentry+0xcd/0x250 [cifs]
[117360.364290] [<f859036d>] ? build_path_from_dentry+0xcd/0x250 [cifs]
[117360.364298] [<c1289958>] ? strncpy_from_user+0x38/0x70
[117360.364305] [<c152e68d>] ? _raw_spin_lock+0xd/0x10
[117360.364318] [<f859b398>] ? _GetXid+0x58/0x80 [cifs]
[117360.364329] [<f8599f36>] cifs_revalidate_dentry_attr+0xa6/0x1a0 [cifs]
[117360.364340] [<f859a102>] cifs_getattr+0x52/0x120 [cifs]
[117360.364345] [<c112d592>] vfs_getattr+0x42/0x70
[117360.364357] [<f859a0b0>] ? cifs_revalidate_dentry+0x40/0x40 [cifs]
[117360.364362] [<c112d627>] vfs_fstatat+0x67/0x80
[117360.364369] [<c112d690>] vfs_stat+0x20/0x30
[117360.364375] [<c112d906>] sys_stat64+0x16/0x30
[117360.364381] [<c1289c12>] ? _copy_from_user+0x42/0x60
[117360.364388] [<c105bc02>] ? sys_rt_sigaction+0x72/0xa0
[117360.364395] [<c1531bc0>] ? vmalloc_fault+0xee/0xee
[117360.364399] [<c152eaa4>] syscall_call+0x7/0xb
What am I supposed to do in order to avoid these client issues when Samba server fails?
Offline
mount cifs with "_netdev" option and put "rc.d stop netfs" in /etc/rc.local.shutdown
O' rly ? Ya rly Oo
Offline
I don't think that's needed: when the Samba server works correctly, clients shutdown without any issue.
Moreover netfs is already in DAEMONS array and the "_netdev" mount option isn't necessary anymore, I think.
I believe that the shutdown process tries to invoke umount at the right time, but umount simply hangs as it does if I invoke it in a shell.
Offline
Try to lazy umount the filesystem when the server goes down with "umount -l /media/ricreativo". When it comes up mount it normally with "mount /media/ricreativo". The lazy umount should take no time.
Offline