Created
January 21, 2016 10:01
-
-
Save dvyukov/428a0c9bfaa867d8ce84 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ 2688.712133] ====================================================== | |
[ 2688.714127] [ INFO: possible circular locking dependency detected ] | |
[ 2688.714127] 4.4.0+ #273 Not tainted | |
[ 2688.714127] ------------------------------------------------------- | |
[ 2688.719151] kworker/u10:4/6892 is trying to acquire lock: | |
[ 2688.719151] (routelock){+.+...}, at: [<ffffffff82d1e3e0>] n_tracerouter_receivebuf+0x20/0x40 | |
[ 2688.719151] | |
[ 2688.719151] but task is already holding lock: | |
[ 2688.723409] (&buf->lock){+.+...}, at: [<ffffffff82d05a11>] flush_to_ldisc+0xe1/0x7f0 | |
[ 2688.723409] | |
[ 2688.723409] which lock already depends on the new lock. | |
[ 2688.723409] | |
[ 2688.723409] | |
[ 2688.723409] the existing dependency chain (in reverse order) is: | |
[ 2688.723409] | |
-> #3 (&buf->lock){+.+...}: | |
[ 2688.723409] [<ffffffff8145a28c>] lock_acquire+0x1dc/0x430 | |
[ 2688.723409] [<ffffffff8632fe9f>] _raw_spin_lock_irqsave+0x9f/0xd0 | |
[ 2688.723409] [<ffffffff82ce3c40>] tty_get_pgrp+0x20/0x80 | |
[ 2688.723409] [<ffffffff82cf230a>] __isig+0x1a/0x50 | |
[ 2688.728344] [<ffffffff82cf43de>] isig+0xae/0x2c0 | |
[ 2688.728344] [<ffffffff82cf7192>] n_tty_receive_signal_char+0x22/0xf0 | |
[ 2688.728344] [<ffffffff82cfaefe>] n_tty_receive_char_special+0x126e/0x2b30 | |
[ 2688.728344] [<ffffffff82cfe163>] n_tty_receive_buf_common+0x19a3/0x2400 | |
[ 2688.728344] [<ffffffff82cfebf3>] n_tty_receive_buf2+0x33/0x40 | |
[ 2688.728344] [<ffffffff82d05cef>] flush_to_ldisc+0x3bf/0x7f0 | |
[ 2688.728344] [<ffffffff8139fd36>] process_one_work+0x796/0x1440 | |
[ 2688.728344] 2016/01/21 03:56:29 executing program 1: | |
mmap(&(0x7f0000000000)=nil, (0x2000), 0x3, 0x32, 0xffffffffffffffff, 0x0) | |
setxattr(&(0x7f0000002000-0x7)="636f6e74726f6c", &(0x7f0000001000)="2b232c766d6e6574316d643573756d2f00", &(0x7f0000001000+0xc7f)="00", 0x1, 0x2) | |
r0 = fcntl$getown(0xffffffffffffff9c, 0x9) | |
ioprio_get$pid(0x1, r0) | |
[<ffffffff813a0abb>] worker_thread+0xdb/0xfc0 | |
[ 2688.738223] [<ffffffff813b423f>] kthread+0x23f/0x2d0 | |
[ 2688.738223] [<ffffffff863308af>] ret_from_fork+0x3f/0x70 | |
[ 2688.738223] | |
-> #2 (&o_tty->termios_rwsem/1){++++..}: | |
[ 2688.738223] [<ffffffff8145a28c>] lock_acquire+0x1dc/0x430 | |
[ 2688.738223] [<ffffffff8632bc77>] down_read+0x47/0x60 | |
[ 2688.738223] [<ffffffff82cfc84d>] n_tty_receive_buf_common+0x8d/0x2400 | |
[ 2688.738223] [<ffffffff82cfebf3>] n_tty_receive_buf2+0x33/0x40 | |
[ 2688.738223] [<ffffffff82d05cef>] flush_to_ldisc+0x3bf/0x7f0 | |
[ 2688.738223] [<ffffffff8139fd36>] process_one_work+0x796/0x1440 | |
[ 2688.738223] [<ffffffff813a0abb>] worker_thread+0xdb/0xfc0 | |
[ 2688.738223] [<ffffffff813b423f>] kthread+0x23f/0x2d0 | |
[ 2688.738223] [<ffffffff863308af>] ret_from_fork+0x3f/0x70 | |
[ 2688.738223] | |
-> #1 (&port->buf.lock/1){+.+...}: | |
[ 2688.738223] [<ffffffff8145a28c>] lock_acquire+0x1dc/0x430 | |
[ 2688.738223] [<ffffffff86326831>] mutex_lock_nested+0xb1/0xa50 | |
[ 2688.738223] [<ffffffff82d1e41f>] n_tracerouter_open+0x1f/0x210 | |
[ 2688.738223] [<ffffffff82d033a8>] tty_ldisc_open.isra.2+0x78/0xd0 | |
[ 2688.738223] [<ffffffff82d03992>] tty_set_ldisc+0x292/0x8a0 | |
[ 2688.738223] [<ffffffff82cec5ee>] tty_ioctl+0xb2e/0x2160 | |
[ 2688.738223] [<ffffffff817ebfbc>] do_vfs_ioctl+0x18c/0xfb0 | |
[ 2688.738223] [<ffffffff817ece6f>] SyS_ioctl+0x8f/0xc0 | |
[ 2688.738223] [<ffffffff863304f6>] entry_SYSCALL_64_fastpath+0x16/0x7a | |
[ 2688.738223] | |
-> #0 (routelock){+.+...}: | |
[ 2688.738223] [<ffffffff8145692b>] __lock_acquire+0x31eb/0x4700 | |
[ 2688.738223] [<ffffffff8145a28c>] lock_acquire+0x1dc/0x430 | |
[ 2688.738223] [<ffffffff86326831>] mutex_lock_nested+0xb1/0xa50 | |
[ 2688.738223] [<ffffffff82d1e3e0>] n_tracerouter_receivebuf+0x20/0x40 | |
[ 2688.738223] [<ffffffff82d05eb4>] flush_to_ldisc+0x584/0x7f0 | |
[ 2688.738223] [<ffffffff8139fd36>] process_one_work+0x796/0x1440 | |
[ 2688.738223] [<ffffffff813a0abb>] worker_thread+0xdb/0xfc0 | |
[ 2688.738223] [<ffffffff813b423f>] kthread+0x23f/0x2d0 | |
[ 2688.738223] [<ffffffff863308af>] ret_from_fork+0x3f/0x70 | |
[ 2688.738223] | |
[ 2688.738223] other info that might help us debug this: | |
[ 2688.738223] | |
[ 2688.738223] Chain exists of: | |
routelock --> &o_tty->termios_rwsem/1 --> &buf->lock | |
[ 2688.738223] Possible unsafe locking scenario: | |
[ 2688.738223] | |
[ 2688.738223] CPU0 CPU1 | |
[ 2688.738223] ---- ---- | |
[ 2688.738223] lock(&buf->lock); | |
[ 2688.738223] lock(&o_tty->termios_rwsem/1); | |
[ 2688.738223] lock(&buf->lock); | |
[ 2688.738223] lock(routelock); | |
[ 2688.738223] | |
[ 2688.738223] *** DEADLOCK *** | |
[ 2688.738223] | |
[ 2688.738223] 4 locks held by kworker/u10:4/6892: | |
[ 2688.738223] #0: ("events_unbound"){.+.+.+}, at: [<ffffffff8139fc3a>] process_one_work+0x69a/0x1440 | |
[ 2688.738223] #1: ((&buf->work)){+.+...}, at: [<ffffffff8139fc6a>] process_one_work+0x6ca/0x1440 | |
[ 2688.738223] #2: (&tty->ldisc_sem){++++++}, at: [<ffffffff82d02dcb>] tty_ldisc_ref+0x1b/0x80 | |
[ 2688.738223] #3: (&buf->lock){+.+...}, at: [<ffffffff82d05a11>] flush_to_ldisc+0xe1/0x7f0 | |
[ 2688.738223] | |
[ 2688.738223] stack backtrace: | |
[ 2688.738223] CPU: 3 PID: 6892 Comm: kworker/u10:4 Not tainted 4.4.0+ #273 | |
[ 2688.738223] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 | |
[ 2688.738223] Workqueue: events_unbound flush_to_ldisc | |
[ 2688.738223] 00000000ffffffff ffff880044b277d0 ffffffff8299464d ffffffff88fb0dd0 | |
[ 2688.738223] ffffffff88ff3a00 ffffffff88fad620 ffff880044b27820 ffffffff8144fb58 | |
[ 2688.738223] ffff8800572697c0 ffff88005726a082 0000000000000000 ffff88005726a060 | |
[ 2688.738223] Call Trace: | |
[ 2688.738223] [<ffffffff8299464d>] dump_stack+0x6f/0xa2 | |
[ 2688.738223] [<ffffffff8144fb58>] print_circular_bug+0x288/0x340 | |
[ 2688.738223] [<ffffffff8145692b>] __lock_acquire+0x31eb/0x4700 | |
[ 2688.738223] [<ffffffff814545e9>] ? __lock_acquire+0xea9/0x4700 | |
[ 2688.738223] [<ffffffff81453740>] ? debug_check_no_locks_freed+0x3c0/0x3c0 | |
[ 2688.738223] [<ffffffff81453740>] ? debug_check_no_locks_freed+0x3c0/0x3c0 | |
[ 2688.738223] [<ffffffff8145a28c>] lock_acquire+0x1dc/0x430 | |
[ 2688.738223] [<ffffffff82d1e3e0>] ? n_tracerouter_receivebuf+0x20/0x40 | |
[ 2688.738223] [<ffffffff86326831>] mutex_lock_nested+0xb1/0xa50 | |
[ 2688.738223] [<ffffffff82d1e3e0>] ? n_tracerouter_receivebuf+0x20/0x40 | |
[ 2688.738223] [<ffffffff81452edd>] ? trace_hardirqs_on+0xd/0x10 | |
[ 2688.738223] [<ffffffff86326780>] ? mutex_lock_interruptible_nested+0xbe0/0xbe0 | |
[ 2688.738223] [<ffffffff86326780>] ? mutex_lock_interruptible_nested+0xbe0/0xbe0 | |
[ 2688.738223] [<ffffffff82d1e3c0>] ? n_tracerouter_write+0x20/0x20 | |
[ 2688.738223] [<ffffffff82d1e3e0>] n_tracerouter_receivebuf+0x20/0x40 | |
[ 2688.738223] [<ffffffff82d05eb4>] flush_to_ldisc+0x584/0x7f0 | |
[ 2688.738223] [<ffffffff82d05930>] ? tty_buffer_unlock_exclusive+0x120/0x120 | |
[ 2688.738223] [<ffffffff8139fd36>] process_one_work+0x796/0x1440 | |
[ 2688.738223] [<ffffffff8139fc6a>] ? process_one_work+0x6ca/0x1440 | |
[ 2688.738223] [<ffffffff8139f5a0>] ? pwq_dec_nr_in_flight+0x2e0/0x2e0 | |
[ 2688.738223] [<ffffffff813a0abb>] worker_thread+0xdb/0xfc0 | |
[ 2688.738223] [<ffffffff86320604>] ? __schedule+0x964/0x1c50 | |
[ 2688.738223] [<ffffffff8632ffd1>] ? _raw_spin_unlock_irqrestore+0x31/0xc0 | |
[ 2688.738223] [<ffffffff813b423f>] kthread+0x23f/0x2d0 | |
[ 2688.738223] [<ffffffff813a09e0>] ? process_one_work+0x1440/0x1440 | |
[ 2688.738223] [<ffffffff813b4000>] ? kthread_create_on_node+0x3b0/0x3b0 | |
[ 2688.738223] [<ffffffff813b4000>] ? kthread_create_on_node+0x3b0/0x3b0 | |
[ 2688.738223] [<ffffffff863308af>] ret_from_fork+0x3f/0x70 | |
[ 2688.738223] [<ffffffff813b4000>] ? kthread_create_on_node+0x3b0/0x3b0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment