All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael L. Semon" <mlsemon35-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Ryusuke Konishi
	<konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Vyacheslav Dubeyko
	<slava-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
Subject: Re: deadlock-like issue with order=strict mounts
Date: Tue, 01 Jul 2014 17:59:31 -0400	[thread overview]
Message-ID: <53B32F43.8010400@gmail.com> (raw)
In-Reply-To: <53B2054D.7060001-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

On 06/30/2014 08:48 PM, Michael L. Semon wrote:
> On 06/30/2014 01:55 PM, Ryusuke Konishi wrote:
>> On Mon, 30 Jun 2014 12:46:37 -0400, "Michael L. Semon" wrote:
>>> Hi!  With debugging being discussed here, I wanted to pass on an issue 
>>> that has no error message associated with it.  This will be one of those 
>>> error reports that Vyacheslav will find not too informative.  He's 
>>> been trying to help with those moments where NILFS2 will stop responding 
>>> for no visible reason, but whatever issue has 100% reproducibility on 
>>> my PC has no reproducibility on his PC.  This is a new test; maybe this 
>>> test will work.
>> <snip>
>>> After forcing a crash and collecting the core dump, I see this using 
>>> the crash 7.0.4 program:
>>>
>>> crash> bt 274
>>> PID: 274    TASK: dd9caac0  CPU: 0   COMMAND: "segctord"
>>>  #0 [c0063d48] __schedule at c1641357
>>>  #1 [c0063dc8] schedule at c1641a7e
>>>  #2 [c0063dd0] inode_wait at c11467c8
>>>  #3 [c0063dd8] __wait_on_bit at c1642133
>>>  #4 [c0063df0] __inode_wait_for_writeback at c1156d98
>>>  #5 [c0063e24] inode_wait_for_writeback at c1159fff
>>>  #6 [c0063e34] evict at c11475de
>>>  #7 [c0063e48] iput at c11482ef
>>>  #8 [c0063e60] nilfs_dispose_list at c12f104a
>>>  #9 [c0063ecc] nilfs_transaction_unlock at c12f14e9
>>> #10 [c0063edc] nilfs_segctor_thread at c12f3fa1
>>> #11 [c0063f28] kthread at c105fb56
>>> #12 [c0063fb0] ret_from_kernel_thread at c164729e
>>>
>>> crash> bt 301
>>> PID: 301    TASK: dd9cc020  CPU: 0   COMMAND: "sync"
>>>  #0 [de9e1dac] __schedule at c1641357
>>>  #1 [de9e1e2c] schedule at c1641a7e
>>>  #2 [de9e1e34] schedule_timeout at c1640a80
>>>  #3 [de9e1ea8] wait_for_completion at c1642436
>>>  #4 [de9e1ed4] sync_inodes_sb at c115ae12
>>>  #5 [de9e1f7c] sync_inodes_one_sb at c115e620
>>>  #6 [de9e1f84] iterate_supers at c112d1e8
>>>  #7 [de9e1fa0] sys_sync at c115e85c
>>>  #8 [de9e1fb0] ia32_sysenter_target at c164736b
>>>     EAX: 00000024  EBX: bf8b1954  ECX: 00000000  EDX: b775517c 
>>>     DS:  007b      ESI: 00000001  ES:  007b      EDI: 00000000
>>>     SS:  007b      ESP: bf8b187c  EBP: bf8b18b8  GS:  0000
>>>     CS:  0073      EIP: b776da8c  ERR: 00000024  EFLAGS: 00000246 
>>
>> Uum, this seems a deadlock issue over I_SYNC flag on inode->i_state.
>> If so, the issue looks reproducible also for default mount by calling
>> sync command and removing files repeatedly.
>>
>> Can you try it ?
>>
>> Regards,
>> Ryusuke Konishi
> 
> It was fine on the default mount.  The script above was used until a 
> 4GB partition was 65% full.  Then, I added more threads and populated 
> it again until the filesystem ran out of space.  No problems.
> 
> In case you or Vyacheslav need the kernel config, it is here:
> 
> https://drive.google.com/file/d/0B41268QKoNjtSUE0SkZsb0E5ckE
> 
> I had a similar issue with xfstests; one of the stack traces 
> may have ended with "no locks were held by segctord/8879."  However, 
> those files did not make it to my USB key to bring here.  They will 
> be included next time, so that I can verify that message.  [My memory 
> is not very good at times.]

OK, here's the stack traces that were missing last time.  This involves 
segctord and umount.nilfs2:

# Command line: env MOUNT_OPTIONS='-o pp=0,order=strict' ./check -g auto
# Test generic/001 passes, but segctord and umount.nilfs2 become 
# unresponsive and trigger the kernel hung task detector.

[ 3824.349820] segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds
[ 3828.544963] segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds
[ 3829.805282] segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds
[ 5040.128148] INFO: task segctord:8987 blocked for more than 720 seconds.
[ 5040.128227]       Not tainted 3.16.0-rc2+ #12
[ 5040.128249] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 5040.128272] segctord        D c10870e4  6124  8987      2 0x00000000
[ 5040.128354]  de9ffdc4 00000086 00000000 c10870e4 00000000 de9ffd94 c18d9000 0ad32d1d
[ 5040.128487]  00000388 c1802780 ddb85580 00000000 de9ffda8 00000046 00000082 00000002
[ 5040.128618]  dfebb000 dfebaff0 00000001 00000046 00000296 dfebaff0 de9ffda8 c108909b
[ 5040.128749] Call Trace:
[ 5040.128812]  [<c10870e4>] ? lock_release_holdtime.part.25+0xb4/0x100
[ 5040.128859]  [<c108909b>] ? trace_hardirqs_on+0xb/0x10
[ 5040.128913]  [<c1641a83>] schedule+0x23/0x60
[ 5040.128968]  [<c11467cd>] inode_wait+0xd/0x20
[ 5040.129081]  [<c1642135>] __wait_on_bit+0x55/0x80
[ 5040.129125]  [<c11467c0>] ? inode_lru_list_del+0x30/0x30
[ 5040.129170]  [<c1156d9d>] __inode_wait_for_writeback+0x8d/0xb0
[ 5040.129227]  [<c107f3f0>] ? autoremove_wake_function+0x50/0x50
[ 5040.129274]  [<c115a004>] inode_wait_for_writeback+0x24/0x40
[ 5040.129316]  [<c11475e3>] evict+0x83/0x160
[ 5040.129358]  [<c11482f4>] iput+0xe4/0x190
[ 5040.129421]  [<c12f105f>] nilfs_dispose_list+0x11f/0x180
[ 5040.129463]  [<c12f14de>] ? nilfs_transaction_unlock.isra.27+0x3e/0x80
[ 5040.129503]  [<c12f14fe>] nilfs_transaction_unlock.isra.27+0x5e/0x80
[ 5040.129544]  [<c12f3fb6>] nilfs_segctor_thread+0xf6/0x300
[ 5040.129584]  [<c12f3ec0>] ? nilfs_segctor_construct+0x300/0x300
[ 5040.129629]  [<c105fb58>] kthread+0xa8/0xc0
[ 5040.129671]  [<c108909b>] ? trace_hardirqs_on+0xb/0x10
[ 5040.129712]  [<c16472a1>] ret_from_kernel_thread+0x21/0x30
[ 5040.129752]  [<c105fab0>] ? insert_kthread_work+0x80/0x80
[ 5040.129779] no locks held by segctord/8987.

crash> bt 8987
PID: 8987   TASK: ddb85580  CPU: 0   COMMAND: "segctord"
 #0 [de9ffd48] __schedule at c1641357
 #1 [de9ffdc8] schedule at c1641a7e
 #2 [de9ffdd0] inode_wait at c11467c8
 #3 [de9ffdd8] __wait_on_bit at c1642133
 #4 [de9ffdf0] __inode_wait_for_writeback at c1156d98
 #5 [de9ffe24] inode_wait_for_writeback at c1159fff
 #6 [de9ffe34] evict at c11475de
 #7 [de9ffe48] iput at c11482ef
 #8 [de9ffe60] nilfs_dispose_list at c12f105a
 #9 [de9ffecc] nilfs_transaction_unlock at c12f14f9
#10 [de9ffedc] nilfs_segctor_thread at c12f3fb1
#11 [de9fff28] kthread at c105fb56
#12 [de9fffb0] ret_from_kernel_thread at c164729e

crash> bt 11520
PID: 11520  TASK: dea15580  CPU: 0   COMMAND: "umount.nilfs2"
 #0 [dd84fd44] __schedule at c1641357
 #1 [dd84fdc4] schedule at c1641a7e
 #2 [dd84fdcc] schedule_timeout at c1640a80
 #3 [dd84fe40] wait_for_completion at c1642436
 #4 [dd84fe6c] sync_inodes_sb at c115ae12
 #5 [dd84ff14] sync_filesystem at c115e7df
 #6 [dd84ff20] generic_shutdown_super at c112cc87
 #7 [dd84ff3c] kill_block_super at c112dd14
 #8 [dd84ff4c] deactivate_locked_super at c112c9d5
 #9 [dd84ff5c] deactivate_super at c112ca62
#10 [dd84ff70] mntput_no_expire at c114d4b8
#11 [dd84ff8c] sys_oldumount at c114f25e
#12 [dd84ffb0] ia32_sysenter_target at c164736b
    EAX: 00000016  EBX: 0990e100  ECX: 00000001  EDX: b7750404 
    DS:  007b      ESI: 0990e008  ES:  007b      EDI: 00000000
    SS:  007b      ESP: bfd3ddbc  EBP: b775084c  GS:  0000
    CS:  0073      EIP: b7765a8c  ERR: 00000016  EFLAGS 00000246 

Again, the same test is OK when using a default mount.

Thanks!

Michael

--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

      parent reply	other threads:[~2014-07-01 21:59 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-30 16:46 deadlock-like issue with order=strict mounts Michael L. Semon
     [not found] ` <20140701.025501.1772353048154202819.konishi.ryusuke@lab.ntt.co.jp>
     [not found]   ` <20140701.025501.1772353048154202819.konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
2014-07-01  0:48     ` Michael L. Semon
     [not found]       ` <53B2054D.7060001-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-07-01 21:59         ` Michael L. Semon [this message]

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=53B32F43.8010400@gmail.com \
    --to=mlsemon35-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org \
    --cc=linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=slava-yeENwD64cLxBDgjK7y7TUQ@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.