* INFO: rcu detected stall in dummy_timer @ 2019-08-09 13:18 syzbot 2019-09-13 19:56 ` syzbot 0 siblings, 1 reply; 12+ messages in thread From: syzbot @ 2019-08-09 13:18 UTC (permalink / raw) To: andreyknvl, balbi, chunfeng.yun, gregkh, linux-kernel, linux-usb, stern, syzkaller-bugs Hello, syzbot found the following crash on: HEAD commit: e96407b4 usb-fuzzer: main usb gadget fuzzer driver git tree: https://github.com/google/kasan.git usb-fuzzer console output: https://syzkaller.appspot.com/x/log.txt?x=102b8c4a600000 kernel config: https://syzkaller.appspot.com/x/.config?x=cfa2c18fb6a8068e dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550 compiler: gcc (GCC) 9.0.0 20181231 (experimental) syz repro: https://syzkaller.appspot.com/x/repro.syz?x=12edd636600000 IMPORTANT: if you fix the bug, please add the following tag to the commit: Reported-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored rcu: INFO: rcu_sched self-detected stall on CPU rcu: 0-...!: (1 GPs behind) idle=36e/1/0x4000000000000004 softirq=16230/16230 fqs=0 (t=10500 jiffies g=22005 q=99) rcu: rcu_sched kthread starved for 10500 jiffies! g22005 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x0 ->cpu=1 rcu: RCU grace-period kthread stack dump: rcu_sched R running task 29424 10 2 0x80004000 Call Trace: schedule+0x9a/0x250 kernel/sched/core.c:3944 schedule_timeout+0x440/0xb20 kernel/time/timer.c:1807 rcu_gp_fqs_loop kernel/rcu/tree.c:1611 [inline] rcu_gp_kthread+0xb01/0x27f0 kernel/rcu/tree.c:1768 kthread+0x318/0x420 kernel/kthread.c:255 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 NMI backtrace for cpu 0 CPU: 0 PID: 2795 Comm: kworker/0:4 Not tainted 5.3.0-rc2+ #25 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: usb_hub_wq hub_event Call Trace: <IRQ> __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xca/0x13e lib/dump_stack.c:113 nmi_cpu_backtrace.cold+0x55/0x96 lib/nmi_backtrace.c:101 nmi_trigger_cpumask_backtrace+0x1b0/0x1c7 lib/nmi_backtrace.c:62 trigger_single_cpu_backtrace include/linux/nmi.h:164 [inline] rcu_dump_cpu_stacks+0x169/0x1b3 kernel/rcu/tree_stall.h:254 print_cpu_stall kernel/rcu/tree_stall.h:455 [inline] check_cpu_stall kernel/rcu/tree_stall.h:529 [inline] rcu_pending kernel/rcu/tree.c:2736 [inline] rcu_sched_clock_irq.cold+0x4a4/0x8d8 kernel/rcu/tree.c:2183 update_process_times+0x2a/0x70 kernel/time/timer.c:1639 tick_sched_handle+0x9b/0x180 kernel/time/tick-sched.c:167 tick_sched_timer+0x42/0x130 kernel/time/tick-sched.c:1296 __run_hrtimer kernel/time/hrtimer.c:1389 [inline] __hrtimer_run_queues+0x303/0xc50 kernel/time/hrtimer.c:1451 hrtimer_interrupt+0x2e8/0x730 kernel/time/hrtimer.c:1509 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1068 [inline] smp_apic_timer_interrupt+0xf5/0x500 arch/x86/kernel/apic/apic.c:1093 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:828 RIP: 0010:arch_local_irq_restore arch/x86/include/asm/irqflags.h:85 [inline] RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline] RIP: 0010:_raw_spin_unlock_irqrestore+0x40/0x50 kernel/locking/spinlock.c:191 Code: e8 a5 d6 b7 fb 48 89 ef e8 4d b7 b8 fb f6 c7 02 75 11 53 9d e8 21 6b d5 fb 65 ff 0d 82 3f 94 7a 5b 5d c3 e8 32 69 d5 fb 53 9d <eb> ed 0f 1f 40 00 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 fd 65 ff RSP: 0018:ffff8881db209b08 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff13 RAX: 0000000000000007 RBX: 0000000000000206 RCX: 0000000000000002 RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff8881c7023844 RBP: ffff8881da16c200 R08: ffff8881c7023000 R09: fffffbfff11acda2 R10: fffffbfff11acda1 R11: ffffffff88d66d0f R12: 0000000000000080 R13: 0000000000000000 R14: dffffc0000000000 R15: ffff8881c9263d00 spin_unlock_irqrestore include/linux/spinlock.h:393 [inline] dummy_timer+0x131b/0x2fa2 drivers/usb/gadget/udc/dummy_hcd.c:1979 call_timer_fn+0x179/0x650 kernel/time/timer.c:1322 expire_timers kernel/time/timer.c:1366 [inline] __run_timers kernel/time/timer.c:1685 [inline] __run_timers kernel/time/timer.c:1653 [inline] run_timer_softirq+0x5cc/0x14b0 kernel/time/timer.c:1698 __do_softirq+0x221/0x912 kernel/softirq.c:292 invoke_softirq kernel/softirq.c:373 [inline] irq_exit+0x178/0x1a0 kernel/softirq.c:413 exiting_irq arch/x86/include/asm/apic.h:537 [inline] smp_apic_timer_interrupt+0x12f/0x500 arch/x86/kernel/apic/apic.c:1095 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:828 </IRQ> RIP: 0010:__kernfs_new_node+0x164/0x640 fs/kernfs/dir.c:639 Code: 00 00 00 4c 89 e6 4c 89 ff 89 44 24 08 e8 a4 fd df 03 31 ff 89 c5 89 c6 e8 a9 30 b6 ff 85 ed 0f 88 5a 03 00 00 e8 2c 2f b6 ff <49> 8d 7d 60 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 0f RSP: 0018:ffff8881c169ede8 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff13 RAX: ffff8881c7023000 RBX: 1ffff110382d3dc0 RCX: ffffffff8187bf97 RDX: 0000000000000000 RSI: ffffffff8187bfa4 RDI: 0000000000000005 RBP: 00000000000151f1 R08: ffff8881c7023000 R09: ffffed10380019fe R10: ffffed10380019fd R11: ffff8881c000cfef R12: ffff8881d2066460 R13: ffff8881da0d7000 R14: ffffffff85f26980 R15: ffff8881da0d7010 kernfs_new_node+0x93/0x120 fs/kernfs/dir.c:697 kernfs_create_link+0xcb/0x230 fs/kernfs/symlink.c:39 sysfs_do_create_link_sd.isra.0+0x8b/0x130 fs/sysfs/symlink.c:44 sysfs_do_create_link fs/sysfs/symlink.c:80 [inline] sysfs_create_link+0x61/0xc0 fs/sysfs/symlink.c:92 device_add_class_symlinks drivers/base/core.c:1859 [inline] device_add+0x6ec/0x16f0 drivers/base/core.c:2080 device_create_groups_vargs+0x203/0x280 drivers/base/core.c:2758 device_create_vargs drivers/base/core.c:2798 [inline] device_create+0xdf/0x120 drivers/base/core.c:2834 usb_register_dev drivers/usb/core/file.c:202 [inline] usb_register_dev+0x279/0x6a0 drivers/usb/core/file.c:156 imon_init_display drivers/media/rc/imon.c:2343 [inline] imon_probe+0x244d/0x2af0 drivers/media/rc/imon.c:2426 usb_probe_interface+0x305/0x7a0 drivers/usb/core/driver.c:361 really_probe+0x281/0x650 drivers/base/dd.c:548 driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709 __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816 bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454 __device_attach+0x217/0x360 drivers/base/dd.c:882 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514 device_add+0xae6/0x16f0 drivers/base/core.c:2114 usb_set_configuration+0xdf6/0x1670 drivers/usb/core/message.c:2023 generic_probe+0x9d/0xd5 drivers/usb/core/generic.c:210 usb_probe_device+0x99/0x100 drivers/usb/core/driver.c:266 really_probe+0x281/0x650 drivers/base/dd.c:548 driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709 __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816 bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454 __device_attach+0x217/0x360 drivers/base/dd.c:882 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514 device_add+0xae6/0x16f0 drivers/base/core.c:2114 usb_new_device.cold+0x6a4/0xe79 drivers/usb/core/hub.c:2536 hub_port_connect drivers/usb/core/hub.c:5098 [inline] hub_port_connect_change drivers/usb/core/hub.c:5213 [inline] port_event drivers/usb/core/hub.c:5359 [inline] hub_event+0x1b5c/0x3640 drivers/usb/core/hub.c:5441 process_one_work+0x92b/0x1530 kernel/workqueue.c:2269 worker_thread+0x96/0xe20 kernel/workqueue.c:2415 kthread+0x318/0x420 kernel/kthread.c:255 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored --- 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#status 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] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-08-09 13:18 INFO: rcu detected stall in dummy_timer syzbot @ 2019-09-13 19:56 ` syzbot 2019-09-13 20:35 ` Alan Stern 2019-09-16 19:53 ` Alan Stern 0 siblings, 2 replies; 12+ messages in thread From: syzbot @ 2019-09-13 19:56 UTC (permalink / raw) To: andreyknvl, balbi, chunfeng.yun, gregkh, linux-kernel, linux-usb, stern, syzkaller-bugs syzbot has found a reproducer for the following crash on: HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver git tree: https://github.com/google/kasan.git usb-fuzzer console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000 kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5 dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550 compiler: gcc (GCC) 9.0.0 20181231 (experimental) syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000 C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000 IMPORTANT: if you fix the bug, please add the following tag to the commit: Reported-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 rcu: INFO: rcu_sched self-detected stall on CPU rcu: 1-....: (10495 ticks this GP) idle=b6e/1/0x4000000000000002 softirq=2369/2369 fqs=5236 (t=10500 jiffies g=1973 q=3366) NMI backtrace for cpu 1 CPU: 1 PID: 16 Comm: ksoftirqd/1 Not tainted 5.3.0-rc7+ #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: <IRQ> __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xca/0x13e lib/dump_stack.c:113 nmi_cpu_backtrace.cold+0x55/0x96 lib/nmi_backtrace.c:101 nmi_trigger_cpumask_backtrace+0x1b0/0x1c7 lib/nmi_backtrace.c:62 trigger_single_cpu_backtrace include/linux/nmi.h:164 [inline] rcu_dump_cpu_stacks+0x169/0x1b3 kernel/rcu/tree_stall.h:254 print_cpu_stall kernel/rcu/tree_stall.h:455 [inline] check_cpu_stall kernel/rcu/tree_stall.h:529 [inline] rcu_pending kernel/rcu/tree.c:2736 [inline] rcu_sched_clock_irq.cold+0x4a4/0x8d8 kernel/rcu/tree.c:2183 update_process_times+0x2a/0x70 kernel/time/timer.c:1639 tick_sched_handle+0x9b/0x180 kernel/time/tick-sched.c:167 tick_sched_timer+0x42/0x130 kernel/time/tick-sched.c:1296 __run_hrtimer kernel/time/hrtimer.c:1389 [inline] __hrtimer_run_queues+0x303/0xc50 kernel/time/hrtimer.c:1451 hrtimer_interrupt+0x2e8/0x730 kernel/time/hrtimer.c:1509 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1106 [inline] smp_apic_timer_interrupt+0xf5/0x500 arch/x86/kernel/apic/apic.c:1131 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:830 </IRQ> RIP: 0010:arch_local_irq_restore arch/x86/include/asm/irqflags.h:85 [inline] RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline] RIP: 0010:_raw_spin_unlock_irqrestore+0x40/0x50 kernel/locking/spinlock.c:191 Code: e8 95 a1 b7 fb 48 89 ef e8 3d 82 b8 fb f6 c7 02 75 11 53 9d e8 f1 34 d5 fb 65 ff 0d 82 1d 94 7a 5b 5d c3 e8 02 33 d5 fb 53 9d <eb> ed 0f 1f 40 00 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 fd 65 ff RSP: 0018:ffff8881da2479c8 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff13 RAX: 0000000000000007 RBX: 0000000000000206 RCX: 0000000000000002 RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff8881da232044 RBP: ffff8881d564c200 R08: ffff8881da231800 R09: fffffbfff11ad7a1 R10: fffffbfff11ad7a0 R11: ffffffff88d6bd07 R12: 0000000000000080 R13: 0000000000000000 R14: dffffc0000000000 R15: ffff8881d1c76f00 spin_unlock_irqrestore include/linux/spinlock.h:393 [inline] dummy_timer+0x131b/0x2fa2 drivers/usb/gadget/udc/dummy_hcd.c:1979 call_timer_fn+0x179/0x650 kernel/time/timer.c:1322 expire_timers kernel/time/timer.c:1366 [inline] __run_timers kernel/time/timer.c:1685 [inline] __run_timers kernel/time/timer.c:1653 [inline] run_timer_softirq+0x5cc/0x14b0 kernel/time/timer.c:1698 __do_softirq+0x221/0x912 kernel/softirq.c:292 run_ksoftirqd kernel/softirq.c:603 [inline] run_ksoftirqd+0x1f/0x40 kernel/softirq.c:595 smpboot_thread_fn+0x3e8/0x850 kernel/smpboot.c:165 kthread+0x318/0x420 kernel/kthread.c:255 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 yurex 2-1:0.101: yurex_interrupt - unknown status received: -71 yurex 3-1:0.101: yurex_inte ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-09-13 19:56 ` syzbot @ 2019-09-13 20:35 ` Alan Stern 2019-09-16 15:29 ` Andrey Konovalov 2019-09-16 19:53 ` Alan Stern 1 sibling, 1 reply; 12+ messages in thread From: Alan Stern @ 2019-09-13 20:35 UTC (permalink / raw) To: syzbot Cc: andreyknvl, balbi, chunfeng.yun, gregkh, linux-kernel, linux-usb, syzkaller-bugs On Fri, 13 Sep 2019, syzbot wrote: > syzbot has found a reproducer for the following crash on: > > HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver > git tree: https://github.com/google/kasan.git usb-fuzzer > console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000 > kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5 > dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550 > compiler: gcc (GCC) 9.0.0 20181231 (experimental) > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000 > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000 > > IMPORTANT: if you fix the bug, please add the following tag to the commit: > Reported-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com > > yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 > yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 > yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 > rcu: INFO: rcu_sched self-detected stall on CPU Andrey: This problem may be a result of overloading dummy_timer. The kernel config you are using has CONFIG_HZ=100, but dummy-hcd needs CONFIG_HZ=1000 (see the comment on line 1789). That is, lower values of HZ will occasionally lead to trouble, and this may be an example. Can you change the config value for HZ and see if the bug still reproduces? Alan Stern ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-09-13 20:35 ` Alan Stern @ 2019-09-16 15:29 ` Andrey Konovalov 2019-09-16 16:32 ` Alan Stern 0 siblings, 1 reply; 12+ messages in thread From: Andrey Konovalov @ 2019-09-16 15:29 UTC (permalink / raw) To: Alan Stern Cc: syzbot, Felipe Balbi, chunfeng.yun, Greg Kroah-Hartman, LKML, USB list, syzkaller-bugs, Dmitry Vyukov On Fri, Sep 13, 2019 at 10:35 PM Alan Stern <stern@rowland.harvard.edu> wrote: > > On Fri, 13 Sep 2019, syzbot wrote: > > > syzbot has found a reproducer for the following crash on: > > > > HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver > > git tree: https://github.com/google/kasan.git usb-fuzzer > > console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000 > > kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5 > > dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550 > > compiler: gcc (GCC) 9.0.0 20181231 (experimental) > > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000 > > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000 > > > > IMPORTANT: if you fix the bug, please add the following tag to the commit: > > Reported-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com > > > > yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 > > yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 > > yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 > > rcu: INFO: rcu_sched self-detected stall on CPU > > Andrey: > > This problem may be a result of overloading dummy_timer. The kernel > config you are using has CONFIG_HZ=100, but dummy-hcd needs > CONFIG_HZ=1000 (see the comment on line 1789). That is, lower values > of HZ will occasionally lead to trouble, and this may be an example. > > Can you change the config value for HZ and see if the bug still > reproduces? Hi Alan, I've tried running the reproducer with CONFIG_HZ=1000 and still got the same stall message. It's accompanied by countless "yurex 6-1:0.101: yurex_interrupt - unknown status received: -71" messages, so I believe this is an issue in the yurex driver. Why does dumy_hcd require CONFIG_HZ=1000? The comment doesn't really explain the reason. Thanks! ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-09-16 15:29 ` Andrey Konovalov @ 2019-09-16 16:32 ` Alan Stern 2019-09-16 18:59 ` Greg Kroah-Hartman 2019-09-18 11:22 ` Andrey Konovalov 0 siblings, 2 replies; 12+ messages in thread From: Alan Stern @ 2019-09-16 16:32 UTC (permalink / raw) To: Andrey Konovalov Cc: syzbot, Felipe Balbi, chunfeng.yun, Greg Kroah-Hartman, LKML, USB list, syzkaller-bugs, Dmitry Vyukov On Mon, 16 Sep 2019, Andrey Konovalov wrote: > On Fri, Sep 13, 2019 at 10:35 PM Alan Stern <stern@rowland.harvard.edu> wrote: > > > > On Fri, 13 Sep 2019, syzbot wrote: > > > > > syzbot has found a reproducer for the following crash on: > > > > > > HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver > > > git tree: https://github.com/google/kasan.git usb-fuzzer > > > console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000 > > > kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5 > > > dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550 > > > compiler: gcc (GCC) 9.0.0 20181231 (experimental) > > > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000 > > > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000 > > > > > > IMPORTANT: if you fix the bug, please add the following tag to the commit: > > > Reported-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com > > > > > > yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 > > > yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 > > > yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 > > > rcu: INFO: rcu_sched self-detected stall on CPU > > > > Andrey: > > > > This problem may be a result of overloading dummy_timer. The kernel > > config you are using has CONFIG_HZ=100, but dummy-hcd needs > > CONFIG_HZ=1000 (see the comment on line 1789). That is, lower values > > of HZ will occasionally lead to trouble, and this may be an example. > > > > Can you change the config value for HZ and see if the bug still > > reproduces? > > Hi Alan, > > I've tried running the reproducer with CONFIG_HZ=1000 and still got > the same stall message. It's accompanied by countless "yurex > 6-1:0.101: yurex_interrupt - unknown status received: -71" messages, > so I believe this is an issue in the yurex driver. Maybe. Depends on exactly what the reproducer is doing, something which is not at all easy to figure out from the scripts or programs. I got the impression that the reproducer connects an emulated yurex device and then disconnects it -- but maybe that's not right at all. Maybe the key point is that the reproducer sends a descriptor listing an endpoint address that doesn't actually exist; that would have a similar effect. Can you tell? (Trying to understand exactly what a syzkaller test program does is not for the faint of heart.) As far as I can remember, the USB spec doesn't say what a device should do when the host sends a packet to a non-existent endpoint. Which means that some devices will do nothing at all, leading to the -71 (-EPROTO) errors you see in the log. Indeed, there's only one place in dummy_hcd.c where -EPROTO occurs -- for the case where an URB is sent to an endpoint not supported by the gadget. This leads to the question: How should the yurex driver (or any USB class driver, in fact) respond to a -EPROTO or similar error? The thing is, this sort of error typically arises in two circumstances: The device was just unplugged, so of course it can't send any packets back to the host; Noise on the bus caused a packet to be lost or corrupted. In the first case, it doesn't much matter what the driver does because the disconnection will be noticed and acted on within a few hundred milliseconds (although I suppose a driver could generate a lot of kernel-log spam during that time). In the second case, retrying the lost/corrupted packet is the right response. But retrying is _not_ the right response in cases where the device is never going to respond because the endpoint address is invalid. This can happen only in situations where the device provides incorrect information (bad descriptors or something of that sort). The only suitable approach I can think of is to limit the number of retries. Retry-limiting is not the sort of thing we want to add to each individual USB class driver. Maybe it can be handled in the USB core; I'll try to write some code for it. Under normal circumstances the issue just doesn't arise, because normal devices aren't malicious. > Why does dumy_hcd require CONFIG_HZ=1000? The comment doesn't really > explain the reason. Oh, that's simple enough. USB events tend to happen at millisecond intervals. The data on the USB bus is organized into frames (and microframes for high speed and SuperSpeed); a frame lasts one millisecond (and a microframe lasts 1/8 ms). Many host controllers report important events when a frame boundary occurs (that's how dummy-hcd works). So for proper timing of the emulation, dummy-hcd requires timer interrupts with millisecond resolution. I suppose the driver could be changed to use a high-res timer instead of a normal kernel timer, but for now that doesn't seem particularly important. Alan Stern ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-09-16 16:32 ` Alan Stern @ 2019-09-16 18:59 ` Greg Kroah-Hartman 2019-09-16 19:48 ` Alan Stern 2019-09-18 11:22 ` Andrey Konovalov 1 sibling, 1 reply; 12+ messages in thread From: Greg Kroah-Hartman @ 2019-09-16 18:59 UTC (permalink / raw) To: Alan Stern Cc: Andrey Konovalov, syzbot, Felipe Balbi, chunfeng.yun, LKML, USB list, syzkaller-bugs, Dmitry Vyukov On Mon, Sep 16, 2019 at 12:32:52PM -0400, Alan Stern wrote: > On Mon, 16 Sep 2019, Andrey Konovalov wrote: > > > On Fri, Sep 13, 2019 at 10:35 PM Alan Stern <stern@rowland.harvard.edu> wrote: > > > > > > On Fri, 13 Sep 2019, syzbot wrote: > > > > > > > syzbot has found a reproducer for the following crash on: > > > > > > > > HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver > > > > git tree: https://github.com/google/kasan.git usb-fuzzer > > > > console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000 > > > > kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5 > > > > dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550 > > > > compiler: gcc (GCC) 9.0.0 20181231 (experimental) > > > > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000 > > > > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000 > > > > > > > > IMPORTANT: if you fix the bug, please add the following tag to the commit: > > > > Reported-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com > > > > > > > > yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 > > > > yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 > > > > yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 > > > > rcu: INFO: rcu_sched self-detected stall on CPU > > > > > > Andrey: > > > > > > This problem may be a result of overloading dummy_timer. The kernel > > > config you are using has CONFIG_HZ=100, but dummy-hcd needs > > > CONFIG_HZ=1000 (see the comment on line 1789). That is, lower values > > > of HZ will occasionally lead to trouble, and this may be an example. > > > > > > Can you change the config value for HZ and see if the bug still > > > reproduces? > > > > Hi Alan, > > > > I've tried running the reproducer with CONFIG_HZ=1000 and still got > > the same stall message. It's accompanied by countless "yurex > > 6-1:0.101: yurex_interrupt - unknown status received: -71" messages, > > so I believe this is an issue in the yurex driver. > > Maybe. Depends on exactly what the reproducer is doing, something > which is not at all easy to figure out from the scripts or programs. > > I got the impression that the reproducer connects an emulated yurex > device and then disconnects it -- but maybe that's not right at all. > Maybe the key point is that the reproducer sends a descriptor listing > an endpoint address that doesn't actually exist; that would have a > similar effect. Can you tell? (Trying to understand exactly what a > syzkaller test program does is not for the faint of heart.) > > As far as I can remember, the USB spec doesn't say what a device should > do when the host sends a packet to a non-existent endpoint. Which > means that some devices will do nothing at all, leading to the -71 > (-EPROTO) errors you see in the log. Indeed, there's only one place in > dummy_hcd.c where -EPROTO occurs -- for the case where an URB is sent > to an endpoint not supported by the gadget. > > This leads to the question: How should the yurex driver (or any USB > class driver, in fact) respond to a -EPROTO or similar error? The > thing is, this sort of error typically arises in two circumstances: > > The device was just unplugged, so of course it can't send > any packets back to the host; > > Noise on the bus caused a packet to be lost or corrupted. > > In the first case, it doesn't much matter what the driver does because > the disconnection will be noticed and acted on within a few hundred > milliseconds (although I suppose a driver could generate a lot of > kernel-log spam during that time). > > In the second case, retrying the lost/corrupted packet is the right > response. > > But retrying is _not_ the right response in cases where the device is > never going to respond because the endpoint address is invalid. This > can happen only in situations where the device provides incorrect > information (bad descriptors or something of that sort). The only > suitable approach I can think of is to limit the number of retries. > > Retry-limiting is not the sort of thing we want to add to each > individual USB class driver. Maybe it can be handled in the USB core; > I'll try to write some code for it. Under normal circumstances the > issue just doesn't arise, because normal devices aren't malicious. I think this issue came up years ago when people realized they could "abuse" this through usbfs, but maybe I am mistaken. The "do we retry or not" is an old discussion, and one I think we just said, "if it errors out, we will not retry as something is wrong with the device". Corrupted packets don't seem to be something that is even noticable in the "real world". When lots of noise happens on a system that might cause this, usually the hub just disconnects the device and resets it. thanks, greg k-h ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-09-16 18:59 ` Greg Kroah-Hartman @ 2019-09-16 19:48 ` Alan Stern 0 siblings, 0 replies; 12+ messages in thread From: Alan Stern @ 2019-09-16 19:48 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Andrey Konovalov, syzbot, Felipe Balbi, chunfeng.yun, LKML, USB list, syzkaller-bugs, Dmitry Vyukov On Mon, 16 Sep 2019, Greg Kroah-Hartman wrote: > On Mon, Sep 16, 2019 at 12:32:52PM -0400, Alan Stern wrote: > > Retry-limiting is not the sort of thing we want to add to each > > individual USB class driver. Maybe it can be handled in the USB core; > > I'll try to write some code for it. Under normal circumstances the > > issue just doesn't arise, because normal devices aren't malicious. > > I think this issue came up years ago when people realized they could > "abuse" this through usbfs, but maybe I am mistaken. > > The "do we retry or not" is an old discussion, and one I think we just > said, "if it errors out, we will not retry as something is wrong with > the device". Really? I bet there are plenty of drivers whose interrupt-URB (or whatever) completion handlers just log an error message and blindly resubmit when they get an unexpected kind of error. > Corrupted packets don't seem to be something that is even > noticable in the "real world". When lots of noise happens on a system > that might cause this, usually the hub just disconnects the device and > resets it. I recall hearing from someone (many years ago -- the technology has certainly improved since then) about a device that would start getting errors whenever a noisy fluorescent light near the computer was switched on. :-) But yes, this sort of thing is very uncommon. So do you recommend editing drivers to prevent them from resubmitting URBs whenever they get an unrecognized error, such as -EPROTO, -EILSEQ, or -ETIME? Then the driver would most likely stop working when one of these errors happens. Alternatively, the USB core could keep track of these three kinds of bus errors for all endpoints and fail submissions when the error count gets too high. That would end up having the same effect -- drivers would stop working -- but it might be a little more robust against noise and it wouldn't require editing lots of drivers. Alan Stern ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-09-16 16:32 ` Alan Stern 2019-09-16 18:59 ` Greg Kroah-Hartman @ 2019-09-18 11:22 ` Andrey Konovalov 2019-09-18 14:16 ` Alan Stern 1 sibling, 1 reply; 12+ messages in thread From: Andrey Konovalov @ 2019-09-18 11:22 UTC (permalink / raw) To: Alan Stern Cc: syzbot, Felipe Balbi, chunfeng.yun, Greg Kroah-Hartman, LKML, USB list, syzkaller-bugs, Dmitry Vyukov On Mon, Sep 16, 2019 at 6:32 PM Alan Stern <stern@rowland.harvard.edu> wrote: > > On Mon, 16 Sep 2019, Andrey Konovalov wrote: > > > On Fri, Sep 13, 2019 at 10:35 PM Alan Stern <stern@rowland.harvard.edu> wrote: > > > > > > On Fri, 13 Sep 2019, syzbot wrote: > > > > > > > syzbot has found a reproducer for the following crash on: > > > > > > > > HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver > > > > git tree: https://github.com/google/kasan.git usb-fuzzer > > > > console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000 > > > > kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5 > > > > dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550 > > > > compiler: gcc (GCC) 9.0.0 20181231 (experimental) > > > > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000 > > > > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000 > > > > > > > > IMPORTANT: if you fix the bug, please add the following tag to the commit: > > > > Reported-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com > > > > > > > > yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 > > > > yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 > > > > yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 > > > > rcu: INFO: rcu_sched self-detected stall on CPU > > > > > > Andrey: > > > > > > This problem may be a result of overloading dummy_timer. The kernel > > > config you are using has CONFIG_HZ=100, but dummy-hcd needs > > > CONFIG_HZ=1000 (see the comment on line 1789). That is, lower values > > > of HZ will occasionally lead to trouble, and this may be an example. > > > > > > Can you change the config value for HZ and see if the bug still > > > reproduces? > > > > Hi Alan, > > > > I've tried running the reproducer with CONFIG_HZ=1000 and still got > > the same stall message. It's accompanied by countless "yurex > > 6-1:0.101: yurex_interrupt - unknown status received: -71" messages, > > so I believe this is an issue in the yurex driver. > > Maybe. Depends on exactly what the reproducer is doing, something > which is not at all easy to figure out from the scripts or programs. > > I got the impression that the reproducer connects an emulated yurex > device and then disconnects it -- but maybe that's not right at all. > Maybe the key point is that the reproducer sends a descriptor listing > an endpoint address that doesn't actually exist; that would have a > similar effect. Can you tell? (Trying to understand exactly what a > syzkaller test program does is not for the faint of heart.) > > As far as I can remember, the USB spec doesn't say what a device should > do when the host sends a packet to a non-existent endpoint. Which > means that some devices will do nothing at all, leading to the -71 > (-EPROTO) errors you see in the log. Indeed, there's only one place in > dummy_hcd.c where -EPROTO occurs -- for the case where an URB is sent > to an endpoint not supported by the gadget. > > This leads to the question: How should the yurex driver (or any USB > class driver, in fact) respond to a -EPROTO or similar error? The > thing is, this sort of error typically arises in two circumstances: > > The device was just unplugged, so of course it can't send > any packets back to the host; > > Noise on the bus caused a packet to be lost or corrupted. > > In the first case, it doesn't much matter what the driver does because > the disconnection will be noticed and acted on within a few hundred > milliseconds (although I suppose a driver could generate a lot of > kernel-log spam during that time). > > In the second case, retrying the lost/corrupted packet is the right > response. > > But retrying is _not_ the right response in cases where the device is > never going to respond because the endpoint address is invalid. This > can happen only in situations where the device provides incorrect > information (bad descriptors or something of that sort). The only > suitable approach I can think of is to limit the number of retries. > > Retry-limiting is not the sort of thing we want to add to each > individual USB class driver. Maybe it can be handled in the USB core; > I'll try to write some code for it. Under normal circumstances the > issue just doesn't arise, because normal devices aren't malicious. > > > Why does dumy_hcd require CONFIG_HZ=1000? The comment doesn't really > > explain the reason. > > Oh, that's simple enough. USB events tend to happen at millisecond > intervals. The data on the USB bus is organized into frames (and > microframes for high speed and SuperSpeed); a frame lasts one > millisecond (and a microframe lasts 1/8 ms). Many host controllers > report important events when a frame boundary occurs (that's how > dummy-hcd works). > > So for proper timing of the emulation, dummy-hcd requires timer > interrupts with millisecond resolution. I suppose the driver could be > changed to use a high-res timer instead of a normal kernel timer, but > for now that doesn't seem particularly important. So what are the practical differences between using CONFIG_HZ=100 and 1000 for dummy-hcd? Is is going to be slower or faster? Or can it get overloaded with data and cause stalls? Or something else? We're somewhat hesitant to change CONFIG_HZ as we don't know how it will affect other parts of the kernel (at some point the USB fuzzer will become a part of the main syzbot instance that doesn't only fuzz USB). ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-09-18 11:22 ` Andrey Konovalov @ 2019-09-18 14:16 ` Alan Stern 0 siblings, 0 replies; 12+ messages in thread From: Alan Stern @ 2019-09-18 14:16 UTC (permalink / raw) To: Andrey Konovalov Cc: syzbot, Felipe Balbi, chunfeng.yun, Greg Kroah-Hartman, LKML, USB list, syzkaller-bugs, Dmitry Vyukov On Wed, 18 Sep 2019, Andrey Konovalov wrote: > > > Why does dumy_hcd require CONFIG_HZ=1000? The comment doesn't really > > > explain the reason. > > > > Oh, that's simple enough. USB events tend to happen at millisecond > > intervals. The data on the USB bus is organized into frames (and > > microframes for high speed and SuperSpeed); a frame lasts one > > millisecond (and a microframe lasts 1/8 ms). Many host controllers > > report important events when a frame boundary occurs (that's how > > dummy-hcd works). > > > > So for proper timing of the emulation, dummy-hcd requires timer > > interrupts with millisecond resolution. I suppose the driver could be > > changed to use a high-res timer instead of a normal kernel timer, but > > for now that doesn't seem particularly important. > > So what are the practical differences between using CONFIG_HZ=100 and > 1000 for dummy-hcd? Is is going to be slower or faster? The timing of the emulation will be more accurate with 1000. Of course, for your purposes that doesn't matter. Also, the driver will probably end up using a higher fraction of the total CPU time. > Or can it get > overloaded with data and cause stalls? I really don't know the answer to that. It seems probable that 100 is okay and is less likely to lead to overload and stalls than 1000. > Or something else? We're somewhat hesitant to change CONFIG_HZ as > we don't know how it will affect other parts of the kernel (at some > point the USB fuzzer will become a part of the main syzbot instance > that doesn't only fuzz USB). Leaving it at 100 should be okay for now. Especially since we have decided to fix this particular problem in an independent way. In general, I don't know how dummy-hcd will behave when a driver gets into a tight retry loop. In theory, it might end up using so much CPU time that you get an rcu stall like the one we saw, but I don't understand exactly what happened in this case. You'd think that with no more than six (or however many threads syzbot used) callbacks per jiffy, there would be plenty of time for normal threads to run. Alan Stern ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-09-13 19:56 ` syzbot 2019-09-13 20:35 ` Alan Stern @ 2019-09-16 19:53 ` Alan Stern 2019-09-16 20:13 ` syzbot 1 sibling, 1 reply; 12+ messages in thread From: Alan Stern @ 2019-09-16 19:53 UTC (permalink / raw) To: syzbot Cc: andreyknvl, balbi, chunfeng.yun, gregkh, linux-kernel, linux-usb, syzkaller-bugs On Fri, 13 Sep 2019, syzbot wrote: > syzbot has found a reproducer for the following crash on: > > HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver > git tree: https://github.com/google/kasan.git usb-fuzzer > console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000 > kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5 > dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550 > compiler: gcc (GCC) 9.0.0 20181231 (experimental) > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000 > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000 > > IMPORTANT: if you fix the bug, please add the following tag to the commit: > Reported-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com > > yurex 3-1:0.101: yurex_interrupt - unknown status received: -71 > yurex 5-1:0.101: yurex_interrupt - unknown status received: -71 > yurex 6-1:0.101: yurex_interrupt - unknown status received: -71 Let's see if preventing blind resubmissions fixes the problem. Alan Stern #syz test: https://github.com/google/kasan.git f0df5c1b drivers/usb/misc/yurex.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: usb-devel/drivers/usb/misc/yurex.c =================================================================== --- usb-devel.orig/drivers/usb/misc/yurex.c +++ usb-devel/drivers/usb/misc/yurex.c @@ -132,6 +132,7 @@ static void yurex_interrupt(struct urb * switch (status) { case 0: /*success*/ break; + /* The device is terminated or messed up, give up */ case -EOVERFLOW: dev_err(&dev->interface->dev, "%s - overflow with length %d, actual length is %d\n", @@ -140,12 +141,12 @@ static void yurex_interrupt(struct urb * case -ENOENT: case -ESHUTDOWN: case -EILSEQ: - /* The device is terminated, clean up */ + case -EPROTO: return; default: dev_err(&dev->interface->dev, "%s - unknown status received: %d\n", __func__, status); - goto exit; + return; } /* handle received message */ @@ -177,7 +178,6 @@ static void yurex_interrupt(struct urb * break; } -exit: retval = usb_submit_urb(dev->urb, GFP_ATOMIC); if (retval) { dev_err(&dev->interface->dev, "%s - usb_submit_urb failed: %d\n", ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: INFO: rcu detected stall in dummy_timer 2019-09-16 19:53 ` Alan Stern @ 2019-09-16 20:13 ` syzbot 2019-09-17 16:47 ` [PATCH] USB: yurex: Don't retry on unexpected errors Alan Stern 0 siblings, 1 reply; 12+ messages in thread From: syzbot @ 2019-09-16 20:13 UTC (permalink / raw) To: andreyknvl, balbi, chunfeng.yun, gregkh, linux-kernel, linux-usb, stern, syzkaller-bugs Hello, syzbot has tested the proposed patch and the reproducer did not trigger crash: Reported-and-tested-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com Tested on: commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver git tree: https://github.com/google/kasan.git kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5 dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550 compiler: gcc (GCC) 9.0.0 20181231 (experimental) patch: https://syzkaller.appspot.com/x/patch.diff?x=1267f9c3600000 Note: testing is done by a robot and is best-effort only. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] USB: yurex: Don't retry on unexpected errors 2019-09-16 20:13 ` syzbot @ 2019-09-17 16:47 ` Alan Stern 0 siblings, 0 replies; 12+ messages in thread From: Alan Stern @ 2019-09-17 16:47 UTC (permalink / raw) To: Greg KH Cc: Tomoki Sekiyama, andreyknvl, chunfeng.yun, USB list, syzkaller-bugs According to Greg KH, it has been generally agreed that when a USB driver encounters an unknown error (or one it can't handle directly), it should just give up instead of going into a potentially infinite retry loop. The three codes -EPROTO, -EILSEQ, and -ETIME fall into this category. They can be caused by bus errors such as packet loss or corruption, attempting to communicate with a disconnected device, or by malicious firmware. Nowadays the extent of packet loss or corruption is negligible, so it should be safe for a driver to give up whenever one of these errors occurs. Although the yurex driver handles -EILSEQ errors in this way, it doesn't do the same for -EPROTO (as discovered by the syzbot fuzzer) or other unrecognized errors. This patch adjusts the driver so that it doesn't log an error message for -EPROTO or -ETIME, and it doesn't retry after any errors. Reported-and-tested-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com Signed-off-by: Alan Stern <stern@rowland.harvard.edu> CC: Tomoki Sekiyama <tomoki.sekiyama@gmail.com> CC: <stable@vger.kernel.org> --- [as1918] drivers/usb/misc/yurex.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) Index: usb-devel/drivers/usb/misc/yurex.c =================================================================== --- usb-devel.orig/drivers/usb/misc/yurex.c +++ usb-devel/drivers/usb/misc/yurex.c @@ -132,6 +132,7 @@ static void yurex_interrupt(struct urb * switch (status) { case 0: /*success*/ break; + /* The device is terminated or messed up, give up */ case -EOVERFLOW: dev_err(&dev->interface->dev, "%s - overflow with length %d, actual length is %d\n", @@ -140,12 +141,13 @@ static void yurex_interrupt(struct urb * case -ENOENT: case -ESHUTDOWN: case -EILSEQ: - /* The device is terminated, clean up */ + case -EPROTO: + case -ETIME: return; default: dev_err(&dev->interface->dev, "%s - unknown status received: %d\n", __func__, status); - goto exit; + return; } /* handle received message */ @@ -177,7 +179,6 @@ static void yurex_interrupt(struct urb * break; } -exit: retval = usb_submit_urb(dev->urb, GFP_ATOMIC); if (retval) { dev_err(&dev->interface->dev, "%s - usb_submit_urb failed: %d\n", ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2019-09-18 14:16 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-08-09 13:18 INFO: rcu detected stall in dummy_timer syzbot 2019-09-13 19:56 ` syzbot 2019-09-13 20:35 ` Alan Stern 2019-09-16 15:29 ` Andrey Konovalov 2019-09-16 16:32 ` Alan Stern 2019-09-16 18:59 ` Greg Kroah-Hartman 2019-09-16 19:48 ` Alan Stern 2019-09-18 11:22 ` Andrey Konovalov 2019-09-18 14:16 ` Alan Stern 2019-09-16 19:53 ` Alan Stern 2019-09-16 20:13 ` syzbot 2019-09-17 16:47 ` [PATCH] USB: yurex: Don't retry on unexpected errors Alan Stern
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.