linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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-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

* 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

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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).