linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* INFO: task hung in fuse_sb_destroy
@ 2018-11-01 10:49 syzbot
  2018-11-01 11:05 ` Dmitry Vyukov
  2018-11-07 15:11 ` Miklos Szeredi
  0 siblings, 2 replies; 7+ messages in thread
From: syzbot @ 2018-11-01 10:49 UTC (permalink / raw)
  To: linux-fsdevel, linux-kernel, miklos, syzkaller-bugs

Hello,

syzbot found the following crash on:

HEAD commit:    59fc453b21f7 Merge branch 'akpm' (patches from Andrew)
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=15fb2447400000
kernel config:  https://syzkaller.appspot.com/x/.config?x=ea045471e4c756e8
dashboard link: https://syzkaller.appspot.com/bug?extid=6339eda9cb4ebbc4c37b
compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=178a105d400000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=16651133400000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+6339eda9cb4ebbc4c37b@syzkaller.appspotmail.com

INFO: task syz-executor221:17414 blocked for more than 140 seconds.
       Not tainted 4.19.0+ #313
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
syz-executor221 D23048 17414   5652 0x00000004
Call Trace:
  context_switch kernel/sched/core.c:2831 [inline]
  __schedule+0x8cf/0x21d0 kernel/sched/core.c:3472
  schedule+0xfe/0x460 kernel/sched/core.c:3516
  fuse_wait_aborted+0x20b/0x320 fs/fuse/dev.c:2155
  fuse_sb_destroy+0xe2/0x1d0 fs/fuse/inode.c:1224
  fuse_kill_sb_anon+0x15/0x20 fs/fuse/inode.c:1234
  deactivate_locked_super+0x97/0x100 fs/super.c:329
  deactivate_super+0x2bb/0x320 fs/super.c:360
  cleanup_mnt+0xbf/0x160 fs/namespace.c:1098
  __cleanup_mnt+0x16/0x20 fs/namespace.c:1105
  task_work_run+0x1e8/0x2a0 kernel/task_work.c:113
  tracehook_notify_resume include/linux/tracehook.h:188 [inline]
  exit_to_usermode_loop+0x318/0x380 arch/x86/entry/common.c:166
  prepare_exit_to_usermode arch/x86/entry/common.c:197 [inline]
  syscall_return_slowpath arch/x86/entry/common.c:268 [inline]
  do_syscall_64+0x6be/0x820 arch/x86/entry/common.c:293
  entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x446689
Code: e8 0c e8 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7  
48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff  
ff 0f 83 7b 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007f621e979da8 EFLAGS: 00000293 ORIG_RAX: 00000000000000a6
RAX: 0000000000000000 RBX: 00000000006dbc28 RCX: 0000000000446689
RDX: 0000000000446689 RSI: 000000000000000a RDI: 0000000020000180
RBP: 00000000006dbc20 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000293 R12: 00000000006dbc2c
R13: 0030656c69662f2e R14: 65646f6d746f6f72 R15: 0000000000000000

Showing all locks held in the system:
1 lock held by khungtaskd/1009:
  #0: 0000000095618e4f (rcu_read_lock){....}, at:  
debug_show_all_locks+0xd0/0x424 kernel/locking/lockdep.c:4379
5 locks held by rsyslogd/5530:
  #0: 0000000028bad575 (&f->f_pos_lock){+.+.}, at: __fdget_pos+0x1bb/0x200  
fs/file.c:766
  #1: 00000000e31592cd (&rq->lock){-.-.}, at: rq_lock  
kernel/sched/sched.h:1126 [inline]
  #1: 00000000e31592cd (&rq->lock){-.-.}, at: __schedule+0x236/0x21d0  
kernel/sched/core.c:3410
  #2: 0000000095618e4f (rcu_read_lock){....}, at: trace_sched_stat_runtime  
include/trace/events/sched.h:418 [inline]
  #2: 0000000095618e4f (rcu_read_lock){....}, at: update_curr+0x383/0xbd0  
kernel/sched/fair.c:830
  #3: 00000000e31592cd (&rq->lock){-.-.}, at: rq_lock  
kernel/sched/sched.h:1126 [inline]
  #3: 00000000e31592cd (&rq->lock){-.-.}, at: ttwu_queue  
kernel/sched/core.c:1845 [inline]
  #3: 00000000e31592cd (&rq->lock){-.-.}, at: try_to_wake_up+0x9f6/0x1490  
kernel/sched/core.c:2057
  #4: 0000000095618e4f (rcu_read_lock){....}, at: trace_sched_stat_runtime  
include/trace/events/sched.h:418 [inline]
  #4: 0000000095618e4f (rcu_read_lock){....}, at: update_curr+0x383/0xbd0  
kernel/sched/fair.c:830
2 locks held by getty/5620:
  #0: 00000000492d5ad8 (&tty->ldisc_sem){++++}, at:  
ldsem_down_read+0x32/0x40 drivers/tty/tty_ldsem.c:353
  #1: 0000000088c4d769 (&ldata->atomic_read_lock){+.+.}, at:  
n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
2 locks held by getty/5621:
  #0: 00000000ed56cf3c (&tty->ldisc_sem){++++}, at:  
ldsem_down_read+0x32/0x40 drivers/tty/tty_ldsem.c:353
  #1: 00000000a8112d49 (&ldata->atomic_read_lock){+.+.}, at:  
n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
2 locks held by getty/5622:
  #0: 00000000858703c2 (&tty->ldisc_sem){++++}, at:  
ldsem_down_read+0x32/0x40 drivers/tty/tty_ldsem.c:353
  #1: 00000000b20ff0f8 (&ldata->atomic_read_lock){+.+.}, at:  
n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
2 locks held by getty/5623:
  #0: 00000000a0163126 (&tty->ldisc_sem){++++}, at:  
ldsem_down_read+0x32/0x40 drivers/tty/tty_ldsem.c:353
  #1: 00000000cb4be99e (&ldata->atomic_read_lock){+.+.}, at:  
n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
2 locks held by getty/5624:
  #0: 000000006eab39a0 (&tty->ldisc_sem){++++}, at:  
ldsem_down_read+0x32/0x40 drivers/tty/tty_ldsem.c:353
  #1: 00000000341e7ea5 (&ldata->atomic_read_lock){+.+.}, at:  
n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
2 locks held by getty/5625:
  #0: 00000000e1bb9e75 (&tty->ldisc_sem){++++}, at:  
ldsem_down_read+0x32/0x40 drivers/tty/tty_ldsem.c:353
  #1: 00000000e6c38e03 (&ldata->atomic_read_lock){+.+.}, at:  
n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
2 locks held by getty/5626:
  #0: 00000000437eab2d (&tty->ldisc_sem){++++}, at:  
ldsem_down_read+0x32/0x40 drivers/tty/tty_ldsem.c:353
  #1: 00000000031acd5c (&ldata->atomic_read_lock){+.+.}, at:  
n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
2 locks held by kworker/1:0/5718:
  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at:  
__write_once_size include/linux/compiler.h:206 [inline]
  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at:  
arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at: atomic64_set  
include/asm-generic/atomic-instrumented.h:40 [inline]
  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at: atomic_long_set  
include/asm-generic/atomic-long.h:59 [inline]
  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at: set_work_data  
kernel/workqueue.c:617 [inline]
  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at:  
set_work_pool_and_clear_pending kernel/workqueue.c:644 [inline]
  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at:  
process_one_work+0xb43/0x1c40 kernel/workqueue.c:2124
  #1: 00000000fdcab2d3 ((work_completion)(&rew.rew_work)){+.+.}, at:  
process_one_work+0xb9a/0x1c40 kernel/workqueue.c:2128
1 lock held by syz-executor221/17414:
  #0: 000000003df3056e (&type->s_umount_key#39){+.+.}, at:  
deactivate_super+0x2b3/0x320 fs/super.c:359
1 lock held by syz-executor221/18647:
  #0: 00000000dd0c9ec5 (rcu_state.exp_mutex){+.+.}, at: exp_funnel_lock  
kernel/rcu/tree_exp.h:296 [inline]
  #0: 00000000dd0c9ec5 (rcu_state.exp_mutex){+.+.}, at:  
_synchronize_rcu_expedited.constprop.58+0x7c7/0x9d0  
kernel/rcu/tree_exp.h:620
1 lock held by syz-executor221/18653:
  #0: 00000000dd0c9ec5 (rcu_state.exp_mutex){+.+.}, at: exp_funnel_lock  
kernel/rcu/tree_exp.h:328 [inline]
  #0: 00000000dd0c9ec5 (rcu_state.exp_mutex){+.+.}, at:  
_synchronize_rcu_expedited.constprop.58+0x7af/0x9d0  
kernel/rcu/tree_exp.h:620

=============================================

NMI backtrace for cpu 0
CPU: 0 PID: 1009 Comm: khungtaskd Not tainted 4.19.0+ #313
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS  
Google 01/01/2011
Call Trace:
  __dump_stack lib/dump_stack.c:77 [inline]
  dump_stack+0x244/0x39d lib/dump_stack.c:113
  nmi_cpu_backtrace.cold.2+0x5c/0xa1 lib/nmi_backtrace.c:101
  nmi_trigger_cpumask_backtrace+0x1e8/0x22a lib/nmi_backtrace.c:62
  arch_trigger_cpumask_backtrace+0x14/0x20 arch/x86/kernel/apic/hw_nmi.c:38
  trigger_all_cpu_backtrace include/linux/nmi.h:144 [inline]
  check_hung_uninterruptible_tasks kernel/hung_task.c:205 [inline]
  watchdog+0xb51/0x1060 kernel/hung_task.c:289
  kthread+0x35a/0x440 kernel/kthread.c:246
  ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:350
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 18647 Comm: syz-executor221 Not tainted 4.19.0+ #313
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS  
Google 01/01/2011
RIP: 0010:outb arch/x86/include/asm/io.h:334 [inline]
RIP: 0010:io_serial_out+0x73/0x90 drivers/tty/serial/8250/8250_port.c:455
Code: 00 49 8d 7c 24 38 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03  
d3 e3 80 3c 02 00 75 19 41 03 5c 24 38 44 89 e8 89 da ee <5b> 41 5c 41 5d  
5d c3 e8 e1 66 e0 fd eb c0 e8 3a 67 e0 fd eb e0 0f
RSP: 0018:ffff8801cc666f90 EFLAGS: 00000006
RAX: 0000000000000000 RBX: 00000000000003f9 RCX: 0000000000000000
RDX: 00000000000003f9 RSI: ffffffff83e257a6 RDI: ffffffff8bae5158
RBP: ffff8801cc666fa8 R08: ffff8801bf0b0600 R09: ffffed00398ccde3
R10: ffffed00398ccde3 R11: 0000000000000003 R12: ffffffff8bae5120
R13: 0000000000000000 R14: 0000000000000001 R15: ffffffff8bae5168
FS:  00007f621e97a700(0000) GS:ffff8801daf00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f313a840000 CR3: 00000001c3654000 CR4: 00000000001406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
  serial_port_out include/linux/serial_core.h:276 [inline]
  serial8250_console_write+0x34b/0xb10  
drivers/tty/serial/8250/8250_port.c:3276
  univ8250_console_write+0x5f/0x70 drivers/tty/serial/8250/8250_core.c:586
  call_console_drivers kernel/printk/printk.c:1728 [inline]
  console_unlock+0xb1f/0x1190 kernel/printk/printk.c:2414
  vprintk_emit+0x391/0x990 kernel/printk/printk.c:1922
  vprintk_default+0x28/0x30 kernel/printk/printk.c:1964
  vprintk_func+0x7e/0x181 kernel/printk/printk_safe.c:398
  printk+0xa7/0xcf kernel/printk/printk.c:1997
  kobject_cleanup lib/kobject.c:638 [inline]
  kobject_release lib/kobject.c:691 [inline]
  kref_put include/linux/kref.h:70 [inline]
  kobject_put.cold.9+0x83/0x2e4 lib/kobject.c:708
  put_device drivers/base/core.c:2024 [inline]
  device_unregister+0x28/0x30 drivers/base/core.c:2114
  bdi_unregister+0x5ed/0x880 mm/backing-dev.c:948
  release_bdi mm/backing-dev.c:964 [inline]
  kref_put include/linux/kref.h:70 [inline]
  bdi_put+0x153/0x180 mm/backing-dev.c:973
  generic_shutdown_super+0x3c8/0x530 fs/super.c:470
  kill_anon_super+0x3e/0x60 fs/super.c:1032
  fuse_kill_sb_anon+0x1d/0x20 fs/fuse/inode.c:1235
  deactivate_locked_super+0x97/0x100 fs/super.c:329
  deactivate_super+0x2bb/0x320 fs/super.c:360
  cleanup_mnt+0xbf/0x160 fs/namespace.c:1098
  __cleanup_mnt+0x16/0x20 fs/namespace.c:1105
  task_work_run+0x1e8/0x2a0 kernel/task_work.c:113
  get_signal+0x1558/0x1980 kernel/signal.c:2347
  do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
  exit_to_usermode_loop+0x2e5/0x380 arch/x86/entry/common.c:162
  prepare_exit_to_usermode arch/x86/entry/common.c:197 [inline]
  syscall_return_slowpath arch/x86/entry/common.c:268 [inline]
  do_syscall_64+0x6be/0x820 arch/x86/entry/common.c:293
  entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x446689
Code: e8 0c e8 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7  
48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff  
ff 0f 83 7b 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007f621e979da8 EFLAGS: 00000293 ORIG_RAX: 00000000000000a6
RAX: 0000000000000000 RBX: 00000000006dbc28 RCX: 0000000000446689
RDX: 0000000000446689 RSI: 000000000000000a RDI: 0000000020000180
RBP: 00000000006dbc20 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000293 R12: 00000000006dbc2c
R13: 0030656c69662f2e R14: 65646f6d746f6f72 R15: 0000000000000000
INFO: NMI handler (nmi_cpu_backtrace_handler) took too long to run: 1.274  
msecs
kobject: '0:31' (0000000050d00699): fill_kobj_path: path  
= '/devices/virtual/bdi/0:31'
kobject: '0:32' (00000000d2d168d9): kobject_cleanup, parent           (null)
kobject: '0:31' (0000000050d00699): kobject_cleanup, parent           (null)
kobject: '0:32' (00000000d2d168d9): calling ktype release
kobject: '0:33' (00000000d76406a3): kobject_cleanup, parent           (null)
kobject: '0:28' (000000002da84317): calling ktype release
kobject: '0:29' (00000000e2434e73): kobject_cleanup, parent           (null)
kobject: '0:32': free name
kobject: '0:33' (00000000d76406a3): calling ktype release
kobject: '0:33': free name
kobject: '0:29' (00000000e2434e73): calling ktype release
kobject: '0:28': free name
kobject: '0:29': free name
kobject: '0:31' (0000000050d00699): calling ktype release
kobject: '0:28' (0000000080474e07): kobject_add_internal: parent: 'bdi',  
set: 'devices'
kobject: '0:29' (0000000051f8f0a5): kobject_add_internal: parent: 'bdi',  
set: 'devices'
kobject: '0:28' (0000000080474e07): kobject_uevent_env
kobject: '0:32' (0000000075558c25): kobject_add_internal: parent: 'bdi',  
set: 'devices'
kobject: '0:33' (00000000c8dd3226): kobject_add_internal: parent: 'bdi',  
set: 'devices'
kobject: '0:29' (0000000051f8f0a5): kobject_uevent_env
kobject: '0:33' (00000000c8dd3226): kobject_uevent_env
kobject: '0:31': free name
kobject: '0:28' (0000000080474e07): fill_kobj_path: path  
= '/devices/virtual/bdi/0:28'
kobject: '0:29' (0000000051f8f0a5): fill_kobj_path: path  
= '/devices/virtual/bdi/0:29'
kobject: '0:34' (000000008aa55f96): kobject_add_internal: parent: 'bdi',  
set: 'devices'
kobject: '0:33' (00000000c8dd3226): fill_kobj_path: path  
= '/devices/virtual/bdi/0:33'
kobject: '0:31' (000000008e78fdc7): kobject_add_internal: parent: 'bdi',  
set: 'devices'
kobject: '0:32' (0000000075558c25): kobject_uevent_env
kobject: '0:34' (000000008aa55f96): kobject_uevent_env
kobject: '0:32' (0000000075558c25): fill_kobj_path: path  
= '/devices/virtual/bdi/0:32'
kobject: '0:34' (000000008aa55f96): fill_kobj_path: path  
= '/devices/virtual/bdi/0:34'


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#bug-status-tracking for how to communicate with  
syzbot.
syzbot can test patches for this bug, for details see:
https://goo.gl/tpsmEJ#testing-patches

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: INFO: task hung in fuse_sb_destroy
  2018-11-01 10:49 INFO: task hung in fuse_sb_destroy syzbot
@ 2018-11-01 11:05 ` Dmitry Vyukov
  2018-11-05 10:40   ` Miklos Szeredi
  2018-11-07 15:11 ` Miklos Szeredi
  1 sibling, 1 reply; 7+ messages in thread
From: Dmitry Vyukov @ 2018-11-01 11:05 UTC (permalink / raw)
  To: syzbot; +Cc: linux-fsdevel, LKML, Miklos Szeredi, syzkaller-bugs

On Thu, Nov 1, 2018 at 11:49 AM, syzbot
<syzbot+6339eda9cb4ebbc4c37b@syzkaller.appspotmail.com> wrote:
> Hello,
>
> syzbot found the following crash on:
>
> HEAD commit:    59fc453b21f7 Merge branch 'akpm' (patches from Andrew)
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=15fb2447400000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=ea045471e4c756e8
> dashboard link: https://syzkaller.appspot.com/bug?extid=6339eda9cb4ebbc4c37b
> compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=178a105d400000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=16651133400000


I can easily reproduce this.

The repro gives me a task hanged at:

# cat /proc/7563/task/*/stack
[<0>] fuse_wait_aborted+0x20b/0x320
[<0>] fuse_sb_destroy+0xe2/0x1d0
[<0>] fuse_kill_sb_anon+0x15/0x20
[<0>] deactivate_locked_super+0x97/0x100
[<0>] deactivate_super+0x2bb/0x320
[<0>] cleanup_mnt+0xbf/0x160
[<0>] __cleanup_mnt+0x16/0x20
[<0>] task_work_run+0x1e8/0x2a0
[<0>] exit_to_usermode_loop+0x318/0x380
[<0>] do_syscall_64+0x6be/0x820
[<0>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[<0>] 0xffffffffffffffff

I double checked that writing to /sys/fs/fuse/connections/44/abort did
not help (the only entry in fuse/connections). Wrote multiple times,
and tried to kill the task, nothing helps.



> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+6339eda9cb4ebbc4c37b@syzkaller.appspotmail.com
>
> INFO: task syz-executor221:17414 blocked for more than 140 seconds.
>       Not tainted 4.19.0+ #313
> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> syz-executor221 D23048 17414   5652 0x00000004
> Call Trace:
>  context_switch kernel/sched/core.c:2831 [inline]
>  __schedule+0x8cf/0x21d0 kernel/sched/core.c:3472
>  schedule+0xfe/0x460 kernel/sched/core.c:3516
>  fuse_wait_aborted+0x20b/0x320 fs/fuse/dev.c:2155
>  fuse_sb_destroy+0xe2/0x1d0 fs/fuse/inode.c:1224
>  fuse_kill_sb_anon+0x15/0x20 fs/fuse/inode.c:1234
>  deactivate_locked_super+0x97/0x100 fs/super.c:329
>  deactivate_super+0x2bb/0x320 fs/super.c:360
>  cleanup_mnt+0xbf/0x160 fs/namespace.c:1098
>  __cleanup_mnt+0x16/0x20 fs/namespace.c:1105
>  task_work_run+0x1e8/0x2a0 kernel/task_work.c:113
>  tracehook_notify_resume include/linux/tracehook.h:188 [inline]
>  exit_to_usermode_loop+0x318/0x380 arch/x86/entry/common.c:166
>  prepare_exit_to_usermode arch/x86/entry/common.c:197 [inline]
>  syscall_return_slowpath arch/x86/entry/common.c:268 [inline]
>  do_syscall_64+0x6be/0x820 arch/x86/entry/common.c:293
>  entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x446689
> Code: e8 0c e8 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7
> 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff
> 0f 83 7b 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
> RSP: 002b:00007f621e979da8 EFLAGS: 00000293 ORIG_RAX: 00000000000000a6
> RAX: 0000000000000000 RBX: 00000000006dbc28 RCX: 0000000000446689
> RDX: 0000000000446689 RSI: 000000000000000a RDI: 0000000020000180
> RBP: 00000000006dbc20 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000293 R12: 00000000006dbc2c
> R13: 0030656c69662f2e R14: 65646f6d746f6f72 R15: 0000000000000000
>
> Showing all locks held in the system:
> 1 lock held by khungtaskd/1009:
>  #0: 0000000095618e4f (rcu_read_lock){....}, at:
> debug_show_all_locks+0xd0/0x424 kernel/locking/lockdep.c:4379
> 5 locks held by rsyslogd/5530:
>  #0: 0000000028bad575 (&f->f_pos_lock){+.+.}, at: __fdget_pos+0x1bb/0x200
> fs/file.c:766
>  #1: 00000000e31592cd (&rq->lock){-.-.}, at: rq_lock
> kernel/sched/sched.h:1126 [inline]
>  #1: 00000000e31592cd (&rq->lock){-.-.}, at: __schedule+0x236/0x21d0
> kernel/sched/core.c:3410
>  #2: 0000000095618e4f (rcu_read_lock){....}, at: trace_sched_stat_runtime
> include/trace/events/sched.h:418 [inline]
>  #2: 0000000095618e4f (rcu_read_lock){....}, at: update_curr+0x383/0xbd0
> kernel/sched/fair.c:830
>  #3: 00000000e31592cd (&rq->lock){-.-.}, at: rq_lock
> kernel/sched/sched.h:1126 [inline]
>  #3: 00000000e31592cd (&rq->lock){-.-.}, at: ttwu_queue
> kernel/sched/core.c:1845 [inline]
>  #3: 00000000e31592cd (&rq->lock){-.-.}, at: try_to_wake_up+0x9f6/0x1490
> kernel/sched/core.c:2057
>  #4: 0000000095618e4f (rcu_read_lock){....}, at: trace_sched_stat_runtime
> include/trace/events/sched.h:418 [inline]
>  #4: 0000000095618e4f (rcu_read_lock){....}, at: update_curr+0x383/0xbd0
> kernel/sched/fair.c:830
> 2 locks held by getty/5620:
>  #0: 00000000492d5ad8 (&tty->ldisc_sem){++++}, at: ldsem_down_read+0x32/0x40
> drivers/tty/tty_ldsem.c:353
>  #1: 0000000088c4d769 (&ldata->atomic_read_lock){+.+.}, at:
> n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
> 2 locks held by getty/5621:
>  #0: 00000000ed56cf3c (&tty->ldisc_sem){++++}, at: ldsem_down_read+0x32/0x40
> drivers/tty/tty_ldsem.c:353
>  #1: 00000000a8112d49 (&ldata->atomic_read_lock){+.+.}, at:
> n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
> 2 locks held by getty/5622:
>  #0: 00000000858703c2 (&tty->ldisc_sem){++++}, at: ldsem_down_read+0x32/0x40
> drivers/tty/tty_ldsem.c:353
>  #1: 00000000b20ff0f8 (&ldata->atomic_read_lock){+.+.}, at:
> n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
> 2 locks held by getty/5623:
>  #0: 00000000a0163126 (&tty->ldisc_sem){++++}, at: ldsem_down_read+0x32/0x40
> drivers/tty/tty_ldsem.c:353
>  #1: 00000000cb4be99e (&ldata->atomic_read_lock){+.+.}, at:
> n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
> 2 locks held by getty/5624:
>  #0: 000000006eab39a0 (&tty->ldisc_sem){++++}, at: ldsem_down_read+0x32/0x40
> drivers/tty/tty_ldsem.c:353
>  #1: 00000000341e7ea5 (&ldata->atomic_read_lock){+.+.}, at:
> n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
> 2 locks held by getty/5625:
>  #0: 00000000e1bb9e75 (&tty->ldisc_sem){++++}, at: ldsem_down_read+0x32/0x40
> drivers/tty/tty_ldsem.c:353
>  #1: 00000000e6c38e03 (&ldata->atomic_read_lock){+.+.}, at:
> n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
> 2 locks held by getty/5626:
>  #0: 00000000437eab2d (&tty->ldisc_sem){++++}, at: ldsem_down_read+0x32/0x40
> drivers/tty/tty_ldsem.c:353
>  #1: 00000000031acd5c (&ldata->atomic_read_lock){+.+.}, at:
> n_tty_read+0x335/0x1e80 drivers/tty/n_tty.c:2154
> 2 locks held by kworker/1:0/5718:
>  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at: __write_once_size
> include/linux/compiler.h:206 [inline]
>  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at: arch_atomic64_set
> arch/x86/include/asm/atomic64_64.h:34 [inline]
>  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at: atomic64_set
> include/asm-generic/atomic-instrumented.h:40 [inline]
>  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at: atomic_long_set
> include/asm-generic/atomic-long.h:59 [inline]
>  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at: set_work_data
> kernel/workqueue.c:617 [inline]
>  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at:
> set_work_pool_and_clear_pending kernel/workqueue.c:644 [inline]
>  #0: 0000000003693dce ((wq_completion)"rcu_gp"){+.+.}, at:
> process_one_work+0xb43/0x1c40 kernel/workqueue.c:2124
>  #1: 00000000fdcab2d3 ((work_completion)(&rew.rew_work)){+.+.}, at:
> process_one_work+0xb9a/0x1c40 kernel/workqueue.c:2128
> 1 lock held by syz-executor221/17414:
>  #0: 000000003df3056e (&type->s_umount_key#39){+.+.}, at:
> deactivate_super+0x2b3/0x320 fs/super.c:359
> 1 lock held by syz-executor221/18647:
>  #0: 00000000dd0c9ec5 (rcu_state.exp_mutex){+.+.}, at: exp_funnel_lock
> kernel/rcu/tree_exp.h:296 [inline]
>  #0: 00000000dd0c9ec5 (rcu_state.exp_mutex){+.+.}, at:
> _synchronize_rcu_expedited.constprop.58+0x7c7/0x9d0
> kernel/rcu/tree_exp.h:620
> 1 lock held by syz-executor221/18653:
>  #0: 00000000dd0c9ec5 (rcu_state.exp_mutex){+.+.}, at: exp_funnel_lock
> kernel/rcu/tree_exp.h:328 [inline]
>  #0: 00000000dd0c9ec5 (rcu_state.exp_mutex){+.+.}, at:
> _synchronize_rcu_expedited.constprop.58+0x7af/0x9d0
> kernel/rcu/tree_exp.h:620
>
> =============================================
>
> NMI backtrace for cpu 0
> CPU: 0 PID: 1009 Comm: khungtaskd Not tainted 4.19.0+ #313
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
>  __dump_stack lib/dump_stack.c:77 [inline]
>  dump_stack+0x244/0x39d lib/dump_stack.c:113
>  nmi_cpu_backtrace.cold.2+0x5c/0xa1 lib/nmi_backtrace.c:101
>  nmi_trigger_cpumask_backtrace+0x1e8/0x22a lib/nmi_backtrace.c:62
>  arch_trigger_cpumask_backtrace+0x14/0x20 arch/x86/kernel/apic/hw_nmi.c:38
>  trigger_all_cpu_backtrace include/linux/nmi.h:144 [inline]
>  check_hung_uninterruptible_tasks kernel/hung_task.c:205 [inline]
>  watchdog+0xb51/0x1060 kernel/hung_task.c:289
>  kthread+0x35a/0x440 kernel/kthread.c:246
>  ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:350
> Sending NMI from CPU 0 to CPUs 1:
> NMI backtrace for cpu 1
> CPU: 1 PID: 18647 Comm: syz-executor221 Not tainted 4.19.0+ #313
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> RIP: 0010:outb arch/x86/include/asm/io.h:334 [inline]
> RIP: 0010:io_serial_out+0x73/0x90 drivers/tty/serial/8250/8250_port.c:455
> Code: 00 49 8d 7c 24 38 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03
> d3 e3 80 3c 02 00 75 19 41 03 5c 24 38 44 89 e8 89 da ee <5b> 41 5c 41 5d 5d
> c3 e8 e1 66 e0 fd eb c0 e8 3a 67 e0 fd eb e0 0f
> RSP: 0018:ffff8801cc666f90 EFLAGS: 00000006
> RAX: 0000000000000000 RBX: 00000000000003f9 RCX: 0000000000000000
> RDX: 00000000000003f9 RSI: ffffffff83e257a6 RDI: ffffffff8bae5158
> RBP: ffff8801cc666fa8 R08: ffff8801bf0b0600 R09: ffffed00398ccde3
> R10: ffffed00398ccde3 R11: 0000000000000003 R12: ffffffff8bae5120
> R13: 0000000000000000 R14: 0000000000000001 R15: ffffffff8bae5168
> FS:  00007f621e97a700(0000) GS:ffff8801daf00000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f313a840000 CR3: 00000001c3654000 CR4: 00000000001406e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
>  serial_port_out include/linux/serial_core.h:276 [inline]
>  serial8250_console_write+0x34b/0xb10
> drivers/tty/serial/8250/8250_port.c:3276
>  univ8250_console_write+0x5f/0x70 drivers/tty/serial/8250/8250_core.c:586
>  call_console_drivers kernel/printk/printk.c:1728 [inline]
>  console_unlock+0xb1f/0x1190 kernel/printk/printk.c:2414
>  vprintk_emit+0x391/0x990 kernel/printk/printk.c:1922
>  vprintk_default+0x28/0x30 kernel/printk/printk.c:1964
>  vprintk_func+0x7e/0x181 kernel/printk/printk_safe.c:398
>  printk+0xa7/0xcf kernel/printk/printk.c:1997
>  kobject_cleanup lib/kobject.c:638 [inline]
>  kobject_release lib/kobject.c:691 [inline]
>  kref_put include/linux/kref.h:70 [inline]
>  kobject_put.cold.9+0x83/0x2e4 lib/kobject.c:708
>  put_device drivers/base/core.c:2024 [inline]
>  device_unregister+0x28/0x30 drivers/base/core.c:2114
>  bdi_unregister+0x5ed/0x880 mm/backing-dev.c:948
>  release_bdi mm/backing-dev.c:964 [inline]
>  kref_put include/linux/kref.h:70 [inline]
>  bdi_put+0x153/0x180 mm/backing-dev.c:973
>  generic_shutdown_super+0x3c8/0x530 fs/super.c:470
>  kill_anon_super+0x3e/0x60 fs/super.c:1032
>  fuse_kill_sb_anon+0x1d/0x20 fs/fuse/inode.c:1235
>  deactivate_locked_super+0x97/0x100 fs/super.c:329
>  deactivate_super+0x2bb/0x320 fs/super.c:360
>  cleanup_mnt+0xbf/0x160 fs/namespace.c:1098
>  __cleanup_mnt+0x16/0x20 fs/namespace.c:1105
>  task_work_run+0x1e8/0x2a0 kernel/task_work.c:113
>  get_signal+0x1558/0x1980 kernel/signal.c:2347
>  do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
>  exit_to_usermode_loop+0x2e5/0x380 arch/x86/entry/common.c:162
>  prepare_exit_to_usermode arch/x86/entry/common.c:197 [inline]
>  syscall_return_slowpath arch/x86/entry/common.c:268 [inline]
>  do_syscall_64+0x6be/0x820 arch/x86/entry/common.c:293
>  entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x446689
> Code: e8 0c e8 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7
> 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff
> 0f 83 7b 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
> RSP: 002b:00007f621e979da8 EFLAGS: 00000293 ORIG_RAX: 00000000000000a6
> RAX: 0000000000000000 RBX: 00000000006dbc28 RCX: 0000000000446689
> RDX: 0000000000446689 RSI: 000000000000000a RDI: 0000000020000180
> RBP: 00000000006dbc20 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000293 R12: 00000000006dbc2c
> R13: 0030656c69662f2e R14: 65646f6d746f6f72 R15: 0000000000000000
> INFO: NMI handler (nmi_cpu_backtrace_handler) took too long to run: 1.274
> msecs
> kobject: '0:31' (0000000050d00699): fill_kobj_path: path =
> '/devices/virtual/bdi/0:31'
> kobject: '0:32' (00000000d2d168d9): kobject_cleanup, parent           (null)
> kobject: '0:31' (0000000050d00699): kobject_cleanup, parent           (null)
> kobject: '0:32' (00000000d2d168d9): calling ktype release
> kobject: '0:33' (00000000d76406a3): kobject_cleanup, parent           (null)
> kobject: '0:28' (000000002da84317): calling ktype release
> kobject: '0:29' (00000000e2434e73): kobject_cleanup, parent           (null)
> kobject: '0:32': free name
> kobject: '0:33' (00000000d76406a3): calling ktype release
> kobject: '0:33': free name
> kobject: '0:29' (00000000e2434e73): calling ktype release
> kobject: '0:28': free name
> kobject: '0:29': free name
> kobject: '0:31' (0000000050d00699): calling ktype release
> kobject: '0:28' (0000000080474e07): kobject_add_internal: parent: 'bdi',
> set: 'devices'
> kobject: '0:29' (0000000051f8f0a5): kobject_add_internal: parent: 'bdi',
> set: 'devices'
> kobject: '0:28' (0000000080474e07): kobject_uevent_env
> kobject: '0:32' (0000000075558c25): kobject_add_internal: parent: 'bdi',
> set: 'devices'
> kobject: '0:33' (00000000c8dd3226): kobject_add_internal: parent: 'bdi',
> set: 'devices'
> kobject: '0:29' (0000000051f8f0a5): kobject_uevent_env
> kobject: '0:33' (00000000c8dd3226): kobject_uevent_env
> kobject: '0:31': free name
> kobject: '0:28' (0000000080474e07): fill_kobj_path: path =
> '/devices/virtual/bdi/0:28'
> kobject: '0:29' (0000000051f8f0a5): fill_kobj_path: path =
> '/devices/virtual/bdi/0:29'
> kobject: '0:34' (000000008aa55f96): kobject_add_internal: parent: 'bdi',
> set: 'devices'
> kobject: '0:33' (00000000c8dd3226): fill_kobj_path: path =
> '/devices/virtual/bdi/0:33'
> kobject: '0:31' (000000008e78fdc7): kobject_add_internal: parent: 'bdi',
> set: 'devices'
> kobject: '0:32' (0000000075558c25): kobject_uevent_env
> kobject: '0:34' (000000008aa55f96): kobject_uevent_env
> kobject: '0:32' (0000000075558c25): fill_kobj_path: path =
> '/devices/virtual/bdi/0:32'
> kobject: '0:34' (000000008aa55f96): fill_kobj_path: path =
> '/devices/virtual/bdi/0:34'
>
>
> ---
> This bug is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller@googlegroups.com.
>
> syzbot will keep track of this bug report. See:
> https://goo.gl/tpsmEJ#bug-status-tracking for how to communicate with
> syzbot.
> syzbot can test patches for this bug, for details see:
> https://goo.gl/tpsmEJ#testing-patches
>
> --
> You received this message because you are subscribed to the Google Groups
> "syzkaller-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to syzkaller-bugs+unsubscribe@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/syzkaller-bugs/000000000000c25cca0579982a05%40google.com.
> For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: INFO: task hung in fuse_sb_destroy
  2018-11-01 11:05 ` Dmitry Vyukov
@ 2018-11-05 10:40   ` Miklos Szeredi
  2018-11-05 12:03     ` Miklos Szeredi
  0 siblings, 1 reply; 7+ messages in thread
From: Miklos Szeredi @ 2018-11-05 10:40 UTC (permalink / raw)
  To: Dmitry Vyukov; +Cc: syzbot, linux-fsdevel, LKML, syzkaller-bugs

On Thu, Nov 1, 2018 at 12:05 PM, Dmitry Vyukov <dvyukov@google.com> wrote:
> On Thu, Nov 1, 2018 at 11:49 AM, syzbot
> <syzbot+6339eda9cb4ebbc4c37b@syzkaller.appspotmail.com> wrote:
>> Hello,
>>
>> syzbot found the following crash on:
>>
>> HEAD commit:    59fc453b21f7 Merge branch 'akpm' (patches from Andrew)
>> git tree:       upstream
>> console output: https://syzkaller.appspot.com/x/log.txt?x=15fb2447400000
>> kernel config:  https://syzkaller.appspot.com/x/.config?x=ea045471e4c756e8
>> dashboard link: https://syzkaller.appspot.com/bug?extid=6339eda9cb4ebbc4c37b
>> compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
>> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=178a105d400000
>> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=16651133400000
>
>
> I can easily reproduce this.

I can't reproduce on my meager dual core notebook.

>
> The repro gives me a task hanged at:
>
> # cat /proc/7563/task/*/stack
> [<0>] fuse_wait_aborted+0x20b/0x320
> [<0>] fuse_sb_destroy+0xe2/0x1d0
> [<0>] fuse_kill_sb_anon+0x15/0x20
> [<0>] deactivate_locked_super+0x97/0x100
> [<0>] deactivate_super+0x2bb/0x320
> [<0>] cleanup_mnt+0xbf/0x160
> [<0>] __cleanup_mnt+0x16/0x20
> [<0>] task_work_run+0x1e8/0x2a0
> [<0>] exit_to_usermode_loop+0x318/0x380
> [<0>] do_syscall_64+0x6be/0x820
> [<0>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
> [<0>] 0xffffffffffffffff
>
> I double checked that writing to /sys/fs/fuse/connections/44/abort did
> not help (the only entry in fuse/connections). Wrote multiple times,
> and tried to kill the task, nothing helps.

What's the output of

cat /sys/fs/fuse/connections/NN/waiting

?

Thanks,
Miklos

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: INFO: task hung in fuse_sb_destroy
  2018-11-05 10:40   ` Miklos Szeredi
@ 2018-11-05 12:03     ` Miklos Szeredi
  2018-11-06 16:32       ` Dmitry Vyukov
  0 siblings, 1 reply; 7+ messages in thread
From: Miklos Szeredi @ 2018-11-05 12:03 UTC (permalink / raw)
  To: Dmitry Vyukov; +Cc: syzbot, linux-fsdevel, LKML, syzkaller-bugs

[-- Attachment #1: Type: text/plain, Size: 1851 bytes --]

On Mon, Nov 5, 2018 at 11:40 AM, Miklos Szeredi <miklos@szeredi.hu> wrote:
> On Thu, Nov 1, 2018 at 12:05 PM, Dmitry Vyukov <dvyukov@google.com> wrote:
>> On Thu, Nov 1, 2018 at 11:49 AM, syzbot
>> <syzbot+6339eda9cb4ebbc4c37b@syzkaller.appspotmail.com> wrote:
>>> Hello,
>>>
>>> syzbot found the following crash on:
>>>
>>> HEAD commit:    59fc453b21f7 Merge branch 'akpm' (patches from Andrew)
>>> git tree:       upstream
>>> console output: https://syzkaller.appspot.com/x/log.txt?x=15fb2447400000
>>> kernel config:  https://syzkaller.appspot.com/x/.config?x=ea045471e4c756e8
>>> dashboard link: https://syzkaller.appspot.com/bug?extid=6339eda9cb4ebbc4c37b
>>> compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
>>> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=178a105d400000
>>> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=16651133400000
>>
>>
>> I can easily reproduce this.
>
> I can't reproduce on my meager dual core notebook.
>
>>
>> The repro gives me a task hanged at:
>>
>> # cat /proc/7563/task/*/stack
>> [<0>] fuse_wait_aborted+0x20b/0x320
>> [<0>] fuse_sb_destroy+0xe2/0x1d0
>> [<0>] fuse_kill_sb_anon+0x15/0x20
>> [<0>] deactivate_locked_super+0x97/0x100
>> [<0>] deactivate_super+0x2bb/0x320
>> [<0>] cleanup_mnt+0xbf/0x160
>> [<0>] __cleanup_mnt+0x16/0x20
>> [<0>] task_work_run+0x1e8/0x2a0
>> [<0>] exit_to_usermode_loop+0x318/0x380
>> [<0>] do_syscall_64+0x6be/0x820
>> [<0>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
>> [<0>] 0xffffffffffffffff
>>
>> I double checked that writing to /sys/fs/fuse/connections/44/abort did
>> not help (the only entry in fuse/connections). Wrote multiple times,
>> and tried to kill the task, nothing helps.
>
> What's the output of
>
> cat /sys/fs/fuse/connections/NN/waiting
>
> ?

I think I found the culprit.  Does the attached patch fix it?

Thanks,
Miklos

[-- Attachment #2: fuse-fix-leaked-notify-reply.patch --]
[-- Type: text/x-patch, Size: 402 bytes --]

---
 fs/fuse/dev.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -1715,8 +1715,10 @@ static int fuse_retrieve(struct fuse_con
 	req->in.args[1].size = total_len;
 
 	err = fuse_request_send_notify_reply(fc, req, outarg->notify_unique);
-	if (err)
+	if (err) {
 		fuse_retrieve_end(fc, req);
+		fuse_put_request(fc, req);
+	}
 
 	return err;
 }

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: INFO: task hung in fuse_sb_destroy
  2018-11-05 12:03     ` Miklos Szeredi
@ 2018-11-06 16:32       ` Dmitry Vyukov
  0 siblings, 0 replies; 7+ messages in thread
From: Dmitry Vyukov @ 2018-11-06 16:32 UTC (permalink / raw)
  To: Miklos Szeredi; +Cc: syzbot, linux-fsdevel, LKML, syzkaller-bugs

On Mon, Nov 5, 2018 at 4:03 AM, Miklos Szeredi <miklos@szeredi.hu> wrote:
> On Mon, Nov 5, 2018 at 11:40 AM, Miklos Szeredi <miklos@szeredi.hu> wrote:
>> On Thu, Nov 1, 2018 at 12:05 PM, Dmitry Vyukov <dvyukov@google.com> wrote:
>>> On Thu, Nov 1, 2018 at 11:49 AM, syzbot
>>> <syzbot+6339eda9cb4ebbc4c37b@syzkaller.appspotmail.com> wrote:
>>>> Hello,
>>>>
>>>> syzbot found the following crash on:
>>>>
>>>> HEAD commit:    59fc453b21f7 Merge branch 'akpm' (patches from Andrew)
>>>> git tree:       upstream
>>>> console output: https://syzkaller.appspot.com/x/log.txt?x=15fb2447400000
>>>> kernel config:  https://syzkaller.appspot.com/x/.config?x=ea045471e4c756e8
>>>> dashboard link: https://syzkaller.appspot.com/bug?extid=6339eda9cb4ebbc4c37b
>>>> compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
>>>> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=178a105d400000
>>>> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=16651133400000
>>>
>>>
>>> I can easily reproduce this.
>>
>> I can't reproduce on my meager dual core notebook.
>>
>>>
>>> The repro gives me a task hanged at:
>>>
>>> # cat /proc/7563/task/*/stack
>>> [<0>] fuse_wait_aborted+0x20b/0x320
>>> [<0>] fuse_sb_destroy+0xe2/0x1d0
>>> [<0>] fuse_kill_sb_anon+0x15/0x20
>>> [<0>] deactivate_locked_super+0x97/0x100
>>> [<0>] deactivate_super+0x2bb/0x320
>>> [<0>] cleanup_mnt+0xbf/0x160
>>> [<0>] __cleanup_mnt+0x16/0x20
>>> [<0>] task_work_run+0x1e8/0x2a0
>>> [<0>] exit_to_usermode_loop+0x318/0x380
>>> [<0>] do_syscall_64+0x6be/0x820
>>> [<0>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
>>> [<0>] 0xffffffffffffffff
>>>
>>> I double checked that writing to /sys/fs/fuse/connections/44/abort did
>>> not help (the only entry in fuse/connections). Wrote multiple times,
>>> and tried to kill the task, nothing helps.
>>
>> What's the output of
>>
>> cat /sys/fs/fuse/connections/NN/waiting
>>
>> ?
>
> I think I found the culprit.  Does the attached patch fix it?

Hi Miklos,

I am travelling for next weeks, but you can ask syzbot to test any patches:
https://github.com/google/syzkaller/blob/master/docs/syzbot.md#testing-patches

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: INFO: task hung in fuse_sb_destroy
  2018-11-01 10:49 INFO: task hung in fuse_sb_destroy syzbot
  2018-11-01 11:05 ` Dmitry Vyukov
@ 2018-11-07 15:11 ` Miklos Szeredi
  2018-11-07 15:30   ` syzbot
  1 sibling, 1 reply; 7+ messages in thread
From: Miklos Szeredi @ 2018-11-07 15:11 UTC (permalink / raw)
  To: syzbot; +Cc: linux-fsdevel, linux-kernel, syzkaller-bugs

[-- Attachment #1: Type: text/plain, Size: 89 bytes --]

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
59fc453b21f7

[-- Attachment #2: fuse-fix-leaked-notify-reply.patch --]
[-- Type: text/x-patch, Size: 402 bytes --]

---
 fs/fuse/dev.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -1768,8 +1768,10 @@ static int fuse_retrieve(struct fuse_con
 	req->in.args[1].size = total_len;
 
 	err = fuse_request_send_notify_reply(fc, req, outarg->notify_unique);
-	if (err)
+	if (err) {
 		fuse_retrieve_end(fc, req);
+		fuse_put_request(fc, req);
+	}
 
 	return err;
 }

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: INFO: task hung in fuse_sb_destroy
  2018-11-07 15:11 ` Miklos Szeredi
@ 2018-11-07 15:30   ` syzbot
  0 siblings, 0 replies; 7+ messages in thread
From: syzbot @ 2018-11-07 15:30 UTC (permalink / raw)
  To: linux-fsdevel, linux-kernel, miklos, syzkaller-bugs

Hello,

syzbot has tested the proposed patch and the reproducer did not trigger  
crash:

Reported-and-tested-by:  
syzbot+6339eda9cb4ebbc4c37b@syzkaller.appspotmail.com

Tested on:

commit:         59fc453b21f7 Merge branch 'akpm' (patches from Andrew)
git tree:        
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel config:  https://syzkaller.appspot.com/x/.config?x=ea045471e4c756e8
compiler:       gcc (GCC) 8.0.1 20180413 (experimental)
patch:          https://syzkaller.appspot.com/x/patch.diff?x=15b6042b400000

Note: testing is done by a robot and is best-effort only.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-11-07 15:30 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-01 10:49 INFO: task hung in fuse_sb_destroy syzbot
2018-11-01 11:05 ` Dmitry Vyukov
2018-11-05 10:40   ` Miklos Szeredi
2018-11-05 12:03     ` Miklos Szeredi
2018-11-06 16:32       ` Dmitry Vyukov
2018-11-07 15:11 ` Miklos Szeredi
2018-11-07 15:30   ` syzbot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).