Linux CIFS filesystem development
 help / color / mirror / Atom feed
From: "ISHIKAWA,chiaki" <ishikawa-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org>
To: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: "linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: Hung CIFS driver
Date: Sun, 10 Nov 2013 13:40:01 +0900	[thread overview]
Message-ID: <527F0E21.603@yk.rim.or.jp> (raw)
In-Reply-To: <20131109065826.481ff52c-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>

(2013/11/09 20:58), Jeff Layton wrote:
> On Sat, 09 Nov 2013 02:41:41 +0900
> "ISHIKAWA,chiaki" <ishikawa-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org> wrote:
>
>> (2013/11/09 2:09), ISHIKAWA,chiaki wrote:
>>>
>>> In my next e-mail, I will report that
>>> under Debian GNU/Linux 64bits, the CIFS driver
>>> (uname -r shows 3.10-3-amd64)
>>> can get hung, after a network error simulation by disabling
>>> network interface and enabling again.
>>> CIFS connection is reset, but a process gets stuck in I/O state
>>> ("D" in ps output), and cannot be killed.
>>>
>>
>> System: Debian GNU/Linux 64-bits running in a VMPlayer hosted on Win7.
>>
>> Remote host: Win7 (the host)
>>
>> Test: CIFS-share is mounted
>>
>> mount.cifs //192.168.0.112/L-temp /tmp/L-temp/ -o username=myid,noperm
>>
>> and under that mounted directory, the following test is performed.
>>
>> /tmp/L-temp is where CIFS-share is mounted.
>>
>> TEST SCRIPT:
>> Below,
>> |cp-test| is a program that copies bytes from a file to the other using
>> read/write system calls. (I can post a source on request.)
>>
>> The test script is this:
>>
>> # big-file is a 26+MiB file.
>> TDIR=/tmp/L-temp   # changed to suit the system layout.
>> while true
>> do
>> 	# t1=`create a temporary file name`
>> 	t1=`mktemp $TDIR/1111XXXX`
>> 	t2=`mktemp $TDIR/2222XXXX`
>> 	t3=`mktemp $TDIR/3333XXXX`
>>
>> 	# big-file is a 26+MiB file.
>> 	./cp-test big-file ${t1}
>> 	sleep 2
>> 	./cp-test ${t1} ${t2}
>> 	sleep 2
>> 	./cp-test ${t2} ${t3}
>> 	sleep 4
>> 	rm -f ${t1} ${t2} ${t3}
>> 	sleep 2
>> done
>>
>> The other side: CIFS share is on Windows 7.
>> I tried the remedies discussed in
>> https://wiki.archlinux.org/index.php/Samba/Troubleshooting
>> and in a few other places
>> to remedy the error ("cannot allocate memory" due to non-paged resource
>> allocation failure on Win7, and subsequent mount failure on linux side.
>>
>> Symptom: after a few tests of network failures simulated by
>> disabling and enabling network interface of the VMPlayer,
>> I noticed an incarnation of the program ./cp-test got stuck
>> in "D" state, and could not be interrupted (^C) at all.
>> I mounted CIFS-share with default option and so "soft" should be in effect.
>>
>> Since this happened already after a few tests were performed,
>> I cannot exclude the possibility of screwed up Windows7 host, but even
>> after a full day,
>> I still cannot run "ls -lR" without getting the it hung (I cannot
>> interrupt it with
>> ^C).
>>
>> On the remote side, in Win7 system log, I see about the time the problem
>> started
>> (24 hours ago or so) that windows was complaining that
>>
>> The system could not allocate 983 work items in 60 seconds
>> The system could not allocate 983 work items in 60 seconds
>>    etc.
>> (my translation : I am using Japanese windows and so not sure what
>> the English windows would show.)
>>
>> Now after 24 hours, I don't see it any more even when local "ls -lR"
>> gets hung. I just tested.
>> So it now becomes pure local issue. The driver gets hung somewhere
>> without accessing the
>> remote server at all. (Right, I see not much network traffic.)
>>
>> Here is the dmesg output : I only copied the last part of the output
>> and threw away unrelated messages (unrelated, I hope).
>>
>> [133221.834132] FS-Cache: Netfs 'cifs' registered for caching
>> [133221.834292] Key type cifs.spnego registered
>> [133221.834322] Key type cifs.idmap registered
>> [133221.966838] Status code returned 0xc000006d NT_STATUS_LOGON_FAILURE
>> [133221.966846] CIFS VFS: Send error in SessSetup = -13
>> [133221.967211] CIFS VFS: cifs_mount failed w/return code = -13
>> [133331.808616] CIFS VFS: Error -104 sending data on socket to server
>> [133331.808644] CIFS VFS: Error -32 sending data on socket to server
>>
>> 		[ lots of same messages (-32)...]
>>
>> [133331.809348] CIFS VFS: Error -32 sending data on socket to server
>>
>> 		**** Here I simulated the network error again ****
>>
>
> $ grep 32 /usr/include/asm-generic/errno-base.h
> #define	EPIPE		32	/* Broken pipe */
>
> ...this comes from the socket layer.
>

I see.

>> [133566.580607] e1000: eth0 NIC Link is Down
>> [133566.580722] e1000 0000:02:01.0 eth0: Reset adapter
>> [133604.856771] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
>> Control: None
>>
>>                   **** Somehow CIFS in this version of linux seems to respond
>> 		     only after 120 seconds timeout. I thought there was 15 seconds
>> 		     timeout. ****
>>
>> [133690.810481] CIFS VFS: Server 192.168.0.112 has not responded in 120
>> seconds. Reconnecting...
>
> The cifs code attempts to send a SMB echo command (sort of like a ping
> at the SMB layer) to the server every 60s. If the server doesn't
> respond to two of them, the connection is reestablished.
>
>> [133929.781446] e1000: eth0 NIC Link is Down
>> [133929.781621] e1000 0000:02:01.0 eth0: Reset adapter
>> [133957.933636] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow
>> Control: None
>> [134054.949640] CIFS VFS: Server 192.168.0.112 has not responded in 120
>> seconds. Reconnecting...
>>
>> 		**** Obviously a read/write routine gets stuck more than 120 seconds.
>> 		     CIFS is being remounted after 120 seconds, but remount took more
>> 		     than a few seconds, I guess. So 120+ seconds hung for the
>> 		     stucked task/process ****
>>
>
> It depends on what you mean by "routine" here. A read or write system
> call may mean more than one SMB being transmitted on the wire. But it
> really looks like you're having communications problems with the server.

So a communicatin layer problem may have caused the SMB/CIFS layer to 
get stuck (?)
>
>> [134251.478654] INFO: task kworker/0:166:17092 blocked for more than 120
>> seconds.
>> [134251.478659] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134251.478661] kworker/0:166   D ffff88028b613f40     0 17092      2
>> 0x00000000
>> [134251.478694] Workqueue: cifsiod cifs_oplock_break [cifs]
>> [134251.478697]  ffff8800a3c54100 0000000000000046 ffffffff81613400
>> 0000000000013f40
>> [134251.478703]  ffff88005e8a1fd8 ffff88005e8a1fd8 ffff8800a3c54100
>> ffff88028b613f40
>> [134251.478706]  ffff8800a3c54100 ffff88005e8a1d28 ffffffff810c051f
>> 0000000000000002
>> [134251.478709] Call Trace:
>> [134251.478781]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134251.478820]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134251.478824]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134251.478827]  [<ffffffff813846dd>] ? __wait_on_bit+0x3b/0x6e
>> [134251.478829]  [<ffffffff810c05ce>] ? wait_on_page_bit+0x69/0x6e
>> [134251.478851]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134251.478854]  [<ffffffff810c0c7b>] ? filemap_fdatawait_range+0x65/0xfa
>> [134251.478860]  [<ffffffffa04dec18>] ? cifs_oplock_break+0xd5/0x21d [cifs]
>> [134251.478865]  [<ffffffff8105f74a>] ? finish_task_switch+0x81/0xaa
>> [134251.478871]  [<ffffffff81052a71>] ? process_one_work+0x18b/0x28c
>> [134251.478873]  [<ffffffff81052f1b>] ? worker_thread+0x121/0x1e7
>> [134251.478876]  [<ffffffff81052dfa>] ? rescuer_thread+0x265/0x265
>> [134251.478878]  [<ffffffff81057325>] ? kthread+0x7d/0x85
>> [134251.478881]  [<ffffffff810572a8>] ? __kthread_parkme+0x59/0x59
>> [134251.478885]  [<ffffffff8138b47c>] ? ret_from_fork+0x7c/0xb0
>> [134251.478887]  [<ffffffff810572a8>] ? __kthread_parkme+0x59/0x59
>> [134251.478895] INFO: task pool:17993 blocked for more than 120 seconds.
>> [134251.478897] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134251.478898] pool            D ffff88028b613f40     0 17993   5142
>> 0x00000000
>> [134251.478901]  ffff88027cbe6780 0000000000000082 ffffffff81613400
>> 0000000000013f40
>> [134251.478904]  ffff880221259fd8 ffff880221259fd8 ffff88027cbe6780
>> ffff88028b613f40
>> [134251.478906]  ffff88027cbe6780 ffff880221259bc0 ffffffff810c051f
>> 0000000000000002
>> [134251.478909] Call Trace:
>> [134251.478911]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134251.478914]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134251.478916]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134251.478918]  [<ffffffff813846dd>] ? __wait_on_bit+0x3b/0x6e
>> [134251.478920]  [<ffffffff810c05ce>] ? wait_on_page_bit+0x69/0x6e
>> [134251.478922]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134251.478987]  [<ffffffff810cb14b>] ?
>> invalidate_inode_pages2_range+0x94/0x226
>> [134251.478995]  [<ffffffffa04e64af>] ?
>> cifs_invalidate_mapping+0x22/0x51 [cifs]
>> [134251.479000]  [<ffffffffa04dce7a>] ? cifs_d_revalidate+0x17/0x88 [cifs]
>> [134251.479022]  [<ffffffff81111ad0>] ? lookup_fast+0x17f/0x213
>> [134251.479026]  [<ffffffff81111d7b>] ? walk_component+0x33/0x1a2
>> [134251.479029]  [<ffffffff81112b39>] ? path_lookupat+0x8e/0x293
>> [134251.479034]  [<ffffffff810fa52e>] ? kmem_cache_alloc+0x8c/0xfd
>> [134251.479037]  [<ffffffff81112d5d>] ? filename_lookup+0x1f/0x73
>> [134251.479054]  [<ffffffff81114efe>] ? user_path_at_empty+0x6f/0xa6
>> [134251.479064]  [<ffffffff8107c8f5>] ? do_futex+0xd1/0x7b5
>> [134251.479066]  [<ffffffff8110d1f7>] ? vfs_fstatat+0x3e/0x8b
>> [134251.479069]  [<ffffffff8110d4bd>] ? SYSC_newlstat+0x10/0x29
>> [134251.479072]  [<ffffffff8138b529>] ? system_call_fastpath+0x16/0x1b
>> [134251.479074] INFO: task pool:18378 blocked for more than 120 seconds.
>> [134251.479076] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134251.479077] pool            D ffff88028b633f40     0 18378   5142
>> 0x00000000
>> [134251.479079]  ffff88010cc2c840 0000000000000082 ffff880281179780
>> 0000000000013f40
>> [134251.479082]  ffff88024678bfd8 ffff88024678bfd8 ffff88010cc2c840
>> ffff88028b633f40
>> [134251.479084]  ffff88010cc2c840 ffff88024678bbc0 0000000000000002
>> ffffffff810c051f
>> [134251.479087] Call Trace:
>> [134251.479089]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134251.479092]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134251.479094]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134251.479096]  [<ffffffff813847c0>] ? __wait_on_bit_lock+0x3a/0x7e
>> [134251.479098]  [<ffffffff810c051a>] ? __lock_page+0x5c/0x61
>> [134251.479101]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134251.479105]  [<ffffffff810cb121>] ?
>> invalidate_inode_pages2_range+0x6a/0x226
>> [134251.479111]  [<ffffffffa04e64af>] ?
>> cifs_invalidate_mapping+0x22/0x51 [cifs]
>> [134251.479116]  [<ffffffffa04dce7a>] ? cifs_d_revalidate+0x17/0x88 [cifs]
>> [134251.479119]  [<ffffffff81111ad0>] ? lookup_fast+0x17f/0x213
>> [134251.479122]  [<ffffffff81111d7b>] ? walk_component+0x33/0x1a2
>> [134251.479125]  [<ffffffff81112b39>] ? path_lookupat+0x8e/0x293
>> [134251.479128]  [<ffffffff810fa52e>] ? kmem_cache_alloc+0x8c/0xfd
>> [134251.479131]  [<ffffffff81112d5d>] ? filename_lookup+0x1f/0x73
>> [134251.479133]  [<ffffffff81114efe>] ? user_path_at_empty+0x6f/0xa6
>> [134251.479136]  [<ffffffff810f9498>] ? ____cache_alloc+0x1d3/0x290
>> [134251.479138]  [<ffffffff8110d1f7>] ? vfs_fstatat+0x3e/0x8b
>> [134251.479141]  [<ffffffff8109fb12>] ? __call_rcu.constprop.51+0xc2/0x1c6
>> [134251.479143]  [<ffffffff8110d4bd>] ? SYSC_newlstat+0x10/0x29
>> [134251.479147]  [<ffffffff8104f3f1>] ? SyS_prctl+0x104/0x32f
>> [134251.479149]  [<ffffffff8138b529>] ? system_call_fastpath+0x16/0x1b
>> [134251.479151] INFO: task pool:18384 blocked for more than 120 seconds.
>> [134251.479153] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134251.479154] pool            D ffff88028b613f40     0 18384   5142
>> 0x00000000
>> [134251.479156]  ffff88027c9c8800 0000000000000082 ffffffff81613400
>> 0000000000013f40
>> [134251.479159]  ffff88024267dfd8 ffff88024267dfd8 ffff88027c9c8800
>> ffff88028b613f40
>> [134251.479161]  ffff88027c9c8800 ffff88024267dbc0 0000000000000002
>> ffffffff810c051f
>> [134251.479163] Call Trace:
>> [134251.479166]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134251.479168]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134251.479170]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134251.479172]  [<ffffffff813847c0>] ? __wait_on_bit_lock+0x3a/0x7e
>> [134251.479174]  [<ffffffff810c051a>] ? __lock_page+0x5c/0x61
>> [134251.479177]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134251.479179]  [<ffffffff810cb121>] ?
>> invalidate_inode_pages2_range+0x6a/0x226
>> [134251.479184]  [<ffffffffa04e64af>] ?
>> cifs_invalidate_mapping+0x22/0x51 [cifs]
>> [134251.479189]  [<ffffffffa04dce7a>] ? cifs_d_revalidate+0x17/0x88 [cifs]
>> [134251.479192]  [<ffffffff81111ad0>] ? lookup_fast+0x17f/0x213
>> [134251.479195]  [<ffffffff81111d7b>] ? walk_component+0x33/0x1a2
>> [134251.479197]  [<ffffffff81112b39>] ? path_lookupat+0x8e/0x293
>> [134251.479200]  [<ffffffff810fa52e>] ? kmem_cache_alloc+0x8c/0xfd
>> [134251.479203]  [<ffffffff81112d5d>] ? filename_lookup+0x1f/0x73
>> [134251.479205]  [<ffffffff81114efe>] ? user_path_at_empty+0x6f/0xa6
>> [134251.479208]  [<ffffffff8105f5ff>] ? __wake_up_sync_key+0x3d/0x55
>> [134251.479211]  [<ffffffff810fa52e>] ? kmem_cache_alloc+0x8c/0xfd
>> [134251.479213]  [<ffffffff8110d1f7>] ? vfs_fstatat+0x3e/0x8b
>> [134251.479215]  [<ffffffff8109fb12>] ? __call_rcu.constprop.51+0xc2/0x1c6
>> [134251.479217]  [<ffffffff8110d4bd>] ? SYSC_newlstat+0x10/0x29
>> [134251.479220]  [<ffffffff8104f3f1>] ? SyS_prctl+0x104/0x32f
>> [134251.479223]  [<ffffffff8138b529>] ? system_call_fastpath+0x16/0x1b
>> [134251.479225] INFO: task pool:18385 blocked for more than 120 seconds.
>> [134251.479226] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134251.479227] pool            D ffff88028b613f40     0 18385   5142
>> 0x00000000
>> [134251.479229]  ffff8802427e9080 0000000000000082 ffffffff81613400
>> 0000000000013f40
>> [134251.479232]  ffff88024674ffd8 ffff88024674ffd8 ffff8802427e9080
>> ffff88028b613f40
>> [134251.479234]  ffff8802427e9080 ffff88024674fda8 ffffffff810c051f
>> 0000000000000002
>> [134251.479236] Call Trace:
>> [134251.479239]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134251.479241]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134251.479243]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134251.479245]  [<ffffffff813846dd>] ? __wait_on_bit+0x3b/0x6e
>> [134251.479247]  [<ffffffff810c05ce>] ? wait_on_page_bit+0x69/0x6e
>> [134251.479250]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134251.479252]  [<ffffffff810c0c7b>] ? filemap_fdatawait_range+0x65/0xfa
>> [134251.479259]  [<ffffffffa04e6706>] ? cifs_getattr+0x45/0xe6 [cifs]
>> [134251.479262]  [<ffffffff8110d208>] ? vfs_fstatat+0x4f/0x8b
>> [134251.479264]  [<ffffffff8110d4bd>] ? SYSC_newlstat+0x10/0x29
>> [134251.479267]  [<ffffffff8104f3f1>] ? SyS_prctl+0x104/0x32f
>> [134251.479270]  [<ffffffff8138b529>] ? system_call_fastpath+0x16/0x1b
>> [134251.479273] INFO: task cp-test:17969 blocked for more than 120 seconds.
>> [134251.479275] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134251.479276] cp-test         D ffff88028b613f40     0 17969  16775
>> 0x00000000
>> [134251.479278]  ffff880221270040 0000000000000086 ffffffff81613400
>> 0000000000013f40
>> [134251.479281]  ffff88010cc85fd8 ffff88010cc85fd8 ffff880221270040
>> ffff88028b613f40
>> [134251.479283]  ffff880221270040 ffff88010cc85e38 ffffffff810c051f
>> 0000000000000002
>> [134251.479285] Call Trace:
>> [134251.479288]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134251.479290]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134251.479292]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134251.479294]  [<ffffffff813846dd>] ? __wait_on_bit+0x3b/0x6e
>> [134251.479296]  [<ffffffff810c05ce>] ? wait_on_page_bit+0x69/0x6e
>> [134251.479299]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134251.479301]  [<ffffffff810c0c7b>] ? filemap_fdatawait_range+0x65/0xfa
>> [134251.479304]  [<ffffffff810c22be>] ? filemap_write_and_wait+0x20/0x33
>> [134251.479309]  [<ffffffffa04e2d79>] ? cifs_flush+0x1d/0x4d [cifs]
>> [134251.479329]  [<ffffffff81107bc5>] ? filp_close+0x37/0x68
>> [134251.479333]  [<ffffffff81108c82>] ? SyS_close+0x1a/0x3c
>> [134251.479335]  [<ffffffff8138b529>] ? system_call_fastpath+0x16/0x1b
>> [134371.629437] INFO: task kworker/0:166:17092 blocked for more than 120
>> seconds.
>> [134371.629442] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134371.629445] kworker/0:166   D ffff88028b613f40     0 17092      2
>> 0x00000000
>> [134371.629504] Workqueue: cifsiod cifs_oplock_break [cifs]
>> [134371.629507]  ffff8800a3c54100 0000000000000046 ffffffff81613400
>> 0000000000013f40
>> [134371.629511]  ffff88005e8a1fd8 ffff88005e8a1fd8 ffff8800a3c54100
>> ffff88028b613f40
>> [134371.629515]  ffff8800a3c54100 ffff88005e8a1d28 ffffffff810c051f
>> 0000000000000002
>> [134371.629518] Call Trace:
>> [134371.629526]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134371.629532]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134371.629535]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134371.629538]  [<ffffffff813846dd>] ? __wait_on_bit+0x3b/0x6e
>> [134371.629541]  [<ffffffff810c05ce>] ? wait_on_page_bit+0x69/0x6e
>> [134371.629546]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134371.629549]  [<ffffffff810c0c7b>] ? filemap_fdatawait_range+0x65/0xfa
>> [134371.629557]  [<ffffffffa04dec18>] ? cifs_oplock_break+0xd5/0x21d [cifs]
>> [134371.629562]  [<ffffffff8105f74a>] ? finish_task_switch+0x81/0xaa
>> [134371.629566]  [<ffffffff81052a71>] ? process_one_work+0x18b/0x28c
>> [134371.629570]  [<ffffffff81052f1b>] ? worker_thread+0x121/0x1e7
>> [134371.629573]  [<ffffffff81052dfa>] ? rescuer_thread+0x265/0x265
>> [134371.629576]  [<ffffffff81057325>] ? kthread+0x7d/0x85
>> [134371.629579]  [<ffffffff810572a8>] ? __kthread_parkme+0x59/0x59
>> [134371.629583]  [<ffffffff8138b47c>] ? ret_from_fork+0x7c/0xb0
>> [134371.629586]  [<ffffffff810572a8>] ? __kthread_parkme+0x59/0x59
>> [134371.629596] INFO: task pool:17993 blocked for more than 120 seconds.
>> [134371.629598] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134371.629600] pool            D ffff88028b613f40     0 17993   5142
>> 0x00000000
>> [134371.629603]  ffff88027cbe6780 0000000000000082 ffffffff81613400
>> 0000000000013f40
>> [134371.629606]  ffff880221259fd8 ffff880221259fd8 ffff88027cbe6780
>> ffff88028b613f40
>> [134371.629609]  ffff88027cbe6780 ffff880221259bc0 ffffffff810c051f
>> 0000000000000002
>> [134371.629613] Call Trace:
>> [134371.629616]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134371.629619]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134371.629622]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134371.629625]  [<ffffffff813846dd>] ? __wait_on_bit+0x3b/0x6e
>> [134371.629632]  [<ffffffff810c05ce>] ? wait_on_page_bit+0x69/0x6e
>> [134371.629636]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134371.629641]  [<ffffffff810cb14b>] ?
>> invalidate_inode_pages2_range+0x94/0x226
>> [134371.629649]  [<ffffffffa04e64af>] ?
>> cifs_invalidate_mapping+0x22/0x51 [cifs]
>> [134371.629656]  [<ffffffffa04dce7a>] ? cifs_d_revalidate+0x17/0x88 [cifs]
>> [134371.629661]  [<ffffffff81111ad0>] ? lookup_fast+0x17f/0x213
>> [134371.629664]  [<ffffffff81111d7b>] ? walk_component+0x33/0x1a2
>> [134371.629668]  [<ffffffff81112b39>] ? path_lookupat+0x8e/0x293
>> [134371.629673]  [<ffffffff810fa52e>] ? kmem_cache_alloc+0x8c/0xfd
>> [134371.629677]  [<ffffffff81112d5d>] ? filename_lookup+0x1f/0x73
>> [134371.629680]  [<ffffffff81114efe>] ? user_path_at_empty+0x6f/0xa6
>> [134371.629686]  [<ffffffff8107c8f5>] ? do_futex+0xd1/0x7b5
>> [134371.629689]  [<ffffffff8110d1f7>] ? vfs_fstatat+0x3e/0x8b
>> [134371.629692]  [<ffffffff8110d4bd>] ? SYSC_newlstat+0x10/0x29
>> [134371.629696]  [<ffffffff8138b529>] ? system_call_fastpath+0x16/0x1b
>> [134371.629699] INFO: task pool:18378 blocked for more than 120 seconds.
>> [134371.629700] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134371.629702] pool            D ffff88028b633f40     0 18378   5142
>> 0x00000000
>> [134371.629705]  ffff88010cc2c840 0000000000000082 ffff880281179780
>> 0000000000013f40
>> [134371.629708]  ffff88024678bfd8 ffff88024678bfd8 ffff88010cc2c840
>> ffff88028b633f40
>> [134371.629711]  ffff88010cc2c840 ffff88024678bbc0 0000000000000002
>> ffffffff810c051f
>> [134371.629715] Call Trace:
>> [134371.629717]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134371.629721]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134371.629723]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134371.629727]  [<ffffffff813847c0>] ? __wait_on_bit_lock+0x3a/0x7e
>> [134371.629729]  [<ffffffff810c051a>] ? __lock_page+0x5c/0x61
>> [134371.629732]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134371.629736]  [<ffffffff810cb121>] ?
>> invalidate_inode_pages2_range+0x6a/0x226
>> [134371.629743]  [<ffffffffa04e64af>] ?
>> cifs_invalidate_mapping+0x22/0x51 [cifs]
>> [134371.629749]  [<ffffffffa04dce7a>] ? cifs_d_revalidate+0x17/0x88 [cifs]
>> [134371.629753]  [<ffffffff81111ad0>] ? lookup_fast+0x17f/0x213
>> [134371.629757]  [<ffffffff81111d7b>] ? walk_component+0x33/0x1a2
>> [134371.629760]  [<ffffffff81112b39>] ? path_lookupat+0x8e/0x293
>> [134371.629764]  [<ffffffff810fa52e>] ? kmem_cache_alloc+0x8c/0xfd
>> [134371.629768]  [<ffffffff81112d5d>] ? filename_lookup+0x1f/0x73
>> [134371.629770]  [<ffffffff81114efe>] ? user_path_at_empty+0x6f/0xa6
>> [134371.629775]  [<ffffffff810f9498>] ? ____cache_alloc+0x1d3/0x290
>> [134371.629777]  [<ffffffff8110d1f7>] ? vfs_fstatat+0x3e/0x8b
>> [134371.629781]  [<ffffffff8109fb12>] ? __call_rcu.constprop.51+0xc2/0x1c6
>> [134371.629784]  [<ffffffff8110d4bd>] ? SYSC_newlstat+0x10/0x29
>> [134371.629788]  [<ffffffff8104f3f1>] ? SyS_prctl+0x104/0x32f
>> [134371.629792]  [<ffffffff8138b529>] ? system_call_fastpath+0x16/0x1b
>> [134371.629794] INFO: task pool:18384 blocked for more than 120 seconds.
>> [134371.629796] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
>> disables this message.
>> [134371.629798] pool            D ffff88028b613f40     0 18384   5142
>> 0x00000000
>> [134371.629801]  ffff88027c9c8800 0000000000000082 ffffffff81613400
>> 0000000000013f40
>> [134371.629804]  ffff88024267dfd8 ffff88024267dfd8 ffff88027c9c8800
>> ffff88028b613f40
>> [134371.629807]  ffff88027c9c8800 ffff88024267dbc0 0000000000000002
>> ffffffff810c051f
>> [134371.629811] Call Trace:
>> [134371.629813]  [<ffffffff810c051f>] ? __lock_page+0x61/0x61
>> [134371.629817]  [<ffffffff813858be>] ? io_schedule+0x54/0x69
>> [134371.629819]  [<ffffffff810c0524>] ? sleep_on_page+0x5/0x8
>> [134371.629822]  [<ffffffff813847c0>] ? __wait_on_bit_lock+0x3a/0x7e
>> [134371.629825]  [<ffffffff810c051a>] ? __lock_page+0x5c/0x61
>> [134371.629828]  [<ffffffff81057ca7>] ? autoremove_wake_function+0x2a/0x2a
>> [134371.629831]  [<ffffffff810cb121>] ?
>> invalidate_inode_pages2_range+0x6a/0x226
>> [134371.629838]  [<ffffffffa04e64af>] ?
>> cifs_invalidate_mapping+0x22/0x51 [cifs]
>> [134371.629846]  [<ffffffffa04dce7a>] ? cifs_d_revalidate+0x17/0x88 [cifs]
>> [134371.629850]  [<ffffffff81111ad0>] ? lookup_fast+0x17f/0x213
>> [134371.629854]  [<ffffffff81111d7b>] ? walk_component+0x33/0x1a2
>> [134371.629857]  [<ffffffff81112b39>] ? path_lookupat+0x8e/0x293
>> [134371.629861]  [<ffffffff810fa52e>] ? kmem_cache_alloc+0x8c/0xfd
>> [134371.629865]  [<ffffffff81112d5d>] ? filename_lookup+0x1f/0x73
>> [134371.629868]  [<ffffffff81114efe>] ? user_path_at_empty+0x6f/0xa6
>> [134371.629871]  [<ffffffff8105f5ff>] ? __wake_up_sync_key+0x3d/0x55
>> [134371.629875]  [<ffffffff810fa52e>] ? kmem_cache_alloc+0x8c/0xfd
>> [134371.629878]  [<ffffffff8110d1f7>] ? vfs_fstatat+0x3e/0x8b
>> [134371.629881]  [<ffffffff8109fb12>] ? __call_rcu.constprop.51+0xc2/0x1c6
>> [134371.629884]  [<ffffffff8110d4bd>] ? SYSC_newlstat+0x10/0x29
>> [134371.629888]  [<ffffffff8104f3f1>] ? SyS_prctl+0x104/0x32f
>> [134371.629891]  [<ffffffff8138b529>] ? system_call_fastpath+0x16/0x1b
>> [184501.155185] CIFS VFS: Server 192.168.0.112 has not responded in 120
>> seconds. Reconnecting...
>>
>> 		**** But now after this, the test program copying a file from the other
>> 		     gets stuck in D state and cannot be killed.
>> 		     I think only reboot will remedy this situation.
>>
>
> Most of these processes are stuck trying to lock a page to either
> invalidate it, or to perform writeback. That implies that something else is holding the lock on that page.
>

I see. Now I realize there many lock/validate strings in the function 
names in the stack trace.

>> Hope this helps.
>>
>> Even if this could be triggered by flakey windows 7 CIFS-share issues,
>> I think it is worthwhile to make CIFS driver robust in such situations.
>>
>
> Me too -- easier said than done ;)
>

Agreed. Just wade through the stack trace and figure out what is going 
on is difficult ;)

>> I am keeping this linux running in this manner and so
>> let me know if you need some runtime information which can be gleaned by
>> some means (like system trace, etc.). Please advise how to obtain the
>> information in that case (the particular command to obtain the desired
>> value will be useful.)
>>
>
> I think what's missing here is some information about what's actually
> happening on the network when you try to recontact the server.
>
> When you bring the interface back up, does the client ever send a SYN
> back to the server? If so, does the server respond?
>

OK, here is my TODO list:
I will try to capture the packet using WireShark on the side of Win7 host.

Oh wait, can I ping the host right now? Of course, it can.
I understand that the suggestion about SYN is regarding the TCP socket 
(CIFS now uses TCP, I suppose) reestablishment.

> Also, what is cifsd (the kernel thread that handles receives) doing at
> this point? I'd expect it to be trying to reconnect to the server...
>
CIFS driver is inside the kernel, correct. I am not entirely sure how I 
can do this. Maybe I should use google to figure out how to debug kernel 
thread.

> What kernel version is this too, btw?

uname -r
3.10-3-amd64

It is 3.10.3 64bit.

Chiaki Ishikawa

  parent reply	other threads:[~2013-11-10  4:40 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-07 15:20 A suggestion for error value, and question regarding EINTR for user-space system calls ISHIKAWA,chiaki
     [not found] ` <527BAFC6.5010600-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org>
2013-11-07 16:03   ` Jeff Layton
     [not found]     ` <20131107110353.6d203196-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2013-11-07 16:12       ` Steve French
     [not found]         ` <CAH2r5mtuM6e7BpHk06sM9rzOxfcRgdkmw0vuQhJfYsrJkfrEdA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-07 17:11           ` ISHIKAWA,chiaki
     [not found]             ` <527BC9C9.5080502-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org>
2013-11-08 17:09               ` ISHIKAWA,chiaki
     [not found]                 ` <527D1ABD.3080404-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org>
2013-11-08 17:41                   ` Hung CIFS driver ISHIKAWA,chiaki
     [not found]                     ` <527D2255.1070709-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org>
2013-11-09 11:58                       ` Jeff Layton
     [not found]                         ` <20131109065826.481ff52c-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2013-11-10  4:40                           ` ISHIKAWA,chiaki [this message]
     [not found]                             ` <527F0E21.603-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org>
2013-11-10  5:49                               ` ISHIKAWA,chiaki
     [not found]                                 ` <527F1E5A.9090900-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org>
2013-11-10 12:12                                   ` ISHIKAWA,chiaki
2013-11-10 12:04                               ` Jeff Layton
     [not found]                                 ` <20131110070412.0c685682-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2013-11-10 12:29                                   ` ISHIKAWA,chiaki
     [not found]                                     ` <527F7C46.4040105-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org>
2013-11-10 12:38                                       ` ISHIKAWA,chiaki
     [not found]                                         ` <527F7E54.5080905-FORCTJUUkgPbmG5+kqVDhQ@public.gmane.org>
2013-11-10 14:06                                           ` ISHIKAWA,chiaki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=527F0E21.603@yk.rim.or.jp \
    --to=ishikawa-forctjuukgpbmg5+kqvdhq@public.gmane.org \
    --cc=jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox