Andrei Vagin <avagin@xxxxxxxxx> writes: > On Sun, Dec 11, 2016 at 6:55 PM, Andrei Vagin <avagin@xxxxxxxxx> wrote: >> Hi, >> >> CRIU tests triggered a kernel bug: > > I''ve booted this kernel with slub_debug=FZ and now I see these > messages: I think I have dropped the cause of this corruption from my linux-next tree, and hopefully from linux-next. I believe this was: "inotify: Convert to using per-namespace limits" If you could verify dropping/reverting that patch from linux-next causes this failure to go away I would appreciate. I am quite puzzled why that patch causes heap corruption but it seems clear it does. If you can trigger this problem without that patch I would really appreciate knowing. Thank you, Eric > [ 119.130447] BUG kmalloc-512 (Not tainted): Freepointer corrupt > [ 119.130447] ----------------------------------------------------------------------------- > [ 119.130447] > [ 119.130447] Disabling lock debugging due to kernel taint > [ 119.130447] INFO: Allocated in setup_userns_sysctls+0x44/0xd0 > age=1588 cpu=1 pid=7327 > [ 119.130447] ___slab_alloc+0x557/0x5c0 > [ 119.130447] __slab_alloc+0x51/0x90 > [ 119.130447] __kmalloc_track_caller+0x213/0x2e0 > [ 119.130447] kmemdup+0x20/0x50 > [ 119.130447] setup_userns_sysctls+0x44/0xd0 > [ 119.130447] create_user_ns+0x287/0x380 > [ 119.130447] copy_creds+0xf3/0x130 > [ 119.130447] copy_process.part.32+0x316/0x20c0 > [ 119.130447] _do_fork+0xf3/0x6f0 > [ 119.130447] SyS_clone+0x19/0x20 > [ 119.130447] do_syscall_64+0x6c/0x1f0 > [ 119.130447] return_from_SYSCALL_64+0x0/0x7a > [ 119.130447] INFO: Freed in load_elf_binary+0xa4f/0x1690 age=1589 > cpu=0 pid=7326 > [ 119.130447] __slab_free+0x1ed/0x370 > [ 119.130447] kfree+0x20d/0x290 > [ 119.130447] load_elf_binary+0xa4f/0x1690 > [ 119.130447] search_binary_handler+0xa1/0x200 > [ 119.130447] do_execveat_common.isra.35+0x6f5/0xa10 > [ 119.130447] SyS_execve+0x3a/0x50 > [ 119.130447] do_syscall_64+0x6c/0x1f0 > [ 119.130447] return_from_SYSCALL_64+0x0/0x7a > [ 119.130447] INFO: Slab 0xfffffaeb84dba700 objects=19 used=17 > fp=0xffff950b36e9eb18 flags=0x2fffc000004081 > [ 119.130447] INFO: Object 0xffff950b36e9c358 @offset=856 fp=0xffff950b29c90258 > [ 119.130447] > [ 119.130447] Redzone ffff950b36e9c350: cc cc cc cc cc cc cc cc > ........ > [ 119.130447] Object ffff950b36e9c358: 51 0c 9f 97 ff ff ff ff 38 02 > c9 29 0b 95 ff ff Q.......8..).... > [ 119.130447] Object ffff950b36e9c368: 04 00 00 00 a4 01 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c378: 00 a9 09 97 ff ff ff ff 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c388: e0 27 ec 97 ff ff ff ff 40 33 > c5 97 ff ff ff ff .'......@3...... > [ 119.130447] Object ffff950b36e9c398: 65 0c 9f 97 ff ff ff ff 3c 02 > c9 29 0b 95 ff ff e.......<..).... > [ 119.130447] Object ffff950b36e9c3a8: 04 00 00 00 a4 01 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c3b8: 00 a9 09 97 ff ff ff ff 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c3c8: e0 27 ec 97 ff ff ff ff 40 33 > c5 97 ff ff ff ff .'......@3...... > [ 119.130447] Object ffff950b36e9c3d8: 78 0c 9f 97 ff ff ff ff 40 02 > c9 29 0b 95 ff ff x.......@..).... > [ 119.130447] Object ffff950b36e9c3e8: 04 00 00 00 a4 01 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c3f8: 00 a9 09 97 ff ff ff ff 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c408: e0 27 ec 97 ff ff ff ff 40 33 > c5 97 ff ff ff ff .'......@3...... > [ 119.130447] Object ffff950b36e9c418: 8b 0c 9f 97 ff ff ff ff 44 02 > c9 29 0b 95 ff ff ........D..).... > [ 119.130447] Object ffff950b36e9c428: 04 00 00 00 a4 01 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c438: 00 a9 09 97 ff ff ff ff 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c448: e0 27 ec 97 ff ff ff ff 40 33 > c5 97 ff ff ff ff .'......@3...... > [ 119.130447] Object ffff950b36e9c458: 9e 0c 9f 97 ff ff ff ff 48 02 > c9 29 0b 95 ff ff ........H..).... > [ 119.130447] Object ffff950b36e9c468: 04 00 00 00 a4 01 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c478: 00 a9 09 97 ff ff ff ff 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c488: e0 27 ec 97 ff ff ff ff 40 33 > c5 97 ff ff ff ff .'......@3...... > [ 119.130447] Object ffff950b36e9c498: b1 0c 9f 97 ff ff ff ff 4c 02 > c9 29 0b 95 ff ff ........L..).... > [ 119.130447] Object ffff950b36e9c4a8: 04 00 00 00 a4 01 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c4b8: 00 a9 09 97 ff ff ff ff 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c4c8: e0 27 ec 97 ff ff ff ff 40 33 > c5 97 ff ff ff ff .'......@3...... > [ 119.130447] Object ffff950b36e9c4d8: c4 0c 9f 97 ff ff ff ff 50 02 > c9 29 0b 95 ff ff ........P..).... > [ 119.130447] Object ffff950b36e9c4e8: 04 00 00 00 a4 01 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c4f8: 00 a9 09 97 ff ff ff ff 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c508: e0 27 ec 97 ff ff ff ff 40 33 > c5 97 ff ff ff ff .'......@3...... > [ 119.130447] Object ffff950b36e9c518: 00 00 00 00 00 00 00 00 54 02 > c9 29 0b 95 ff ff ........T..).... > [ 119.130447] Object ffff950b36e9c528: 00 00 00 00 00 00 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c538: 00 00 00 00 00 00 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Object ffff950b36e9c548: 00 00 00 00 00 00 00 00 00 00 > 00 00 00 00 00 00 ................ > [ 119.130447] Redzone ffff950b36e9c558: cc cc cc cc cc cc cc cc > ........ > [ 119.130447] Padding ffff950b36e9c698: 5a 5a 5a 5a 5a 5a 5a 5a > ZZZZZZZZ > [ 119.130447] CPU: 1 PID: 170 Comm: kworker/1:2 Tainted: G B > 4.9.0-rc8-11553-g59f68472-dirty #117 > [ 119.130447] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), > BIOS 1.9.1-1.fc24 04/01/2014 > [ 119.130447] Workqueue: events free_user_ns > [ 119.130447] Call Trace: > [ 119.130447] dump_stack+0x86/0xc3 > [ 119.130447] print_trailer+0x15a/0x250 > [ 119.130447] check_object+0x160/0x280 > [ 119.130447] free_debug_processing+0x161/0x3d0 > [ 119.130447] ? retire_userns_sysctls+0x33/0x40 > [ 119.130447] __slab_free+0x1ed/0x370 > [ 119.130447] ? debug_lockdep_rcu_enabled+0x1d/0x20 > [ 119.130447] ? mark_held_locks+0x6f/0xa0 > [ 119.130447] ? kfree+0xcd/0x290 > [ 119.130447] ? retire_userns_sysctls+0x33/0x40 > [ 119.130447] ? retire_userns_sysctls+0x33/0x40 > [ 119.130447] kfree+0x20d/0x290 > [ 119.130447] retire_userns_sysctls+0x33/0x40 > [ 119.130447] free_user_ns+0x2b/0x70 > [ 119.130447] process_one_work+0x212/0x6c0 > [ 119.130447] ? process_one_work+0x197/0x6c0 > [ 119.130447] worker_thread+0x4e/0x4a0 > [ 119.130447] ? process_one_work+0x6c0/0x6c0 > [ 119.130447] kthread+0xff/0x120 > [ 119.130447] ? kthread_park+0x60/0x60 > [ 119.130447] ret_from_fork+0x2a/0x40 > [ 119.213921] FIX kmalloc-512: Object at 0xffff950b36e9c358 not freed > > >> >> [ 80.470890] kernel BUG at mm/vmalloc.c:463! >> [ 80.471007] invalid opcode: 0000 [#1] SMP >> [ 80.471007] Modules linked in: >> [ 80.471007] CPU: 0 PID: 14795 Comm: criu Not tainted >> 4.9.0-rc8-next-20161209 #114 >> [ 80.471007] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), >> BIOS 1.9.1-1.fc24 04/01/2014 >> [ 80.471007] task: ffff8bc26c34a680 task.stack: ffff9c6a43d58000 >> [ 80.471007] RIP: 0010:alloc_vmap_area+0x366/0x390 >> [ 80.471007] RSP: 0018:ffff9c6a43d5bc58 EFLAGS: 00010206 >> [ 80.471007] RAX: ffff8bc272ce8000 RBX: ffff8bc267b11420 RCX: 0000000000000000 >> [ 80.471007] RDX: ffffffff8b222bb3 RSI: 0000000000000000 RDI: ffffffff8bc7e7e0 >> [ 80.471007] RBP: ffff9c6a43d5bcb0 R08: ffffffff8bc7e7d0 R09: 0000000000000000 >> [ 80.471007] R10: 0000000000000001 R11: 0000000000000000 R12: ffff9c6a40000000 >> [ 80.471007] R13: ffff9c6a40000000 R14: ffffffffffffc000 R15: 0000000000003fff >> [ 80.471007] FS: 00007fac30a4f800(0000) GS:ffff8bc27fc00000(0000) >> knlGS:0000000000000000 >> [ 80.471007] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 >> [ 80.471007] CR2: 00000000006fc618 CR3: 000000012ffd9000 CR4: 00000000003406f0 >> [ 80.471007] DR0: 0000000000010130 DR1: 0000000000000000 DR2: 0000000000000000 >> [ 80.471007] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600 >> [ 80.471007] Call Trace: >> [ 80.471007] __get_vm_area_node+0xb7/0x170 >> [ 80.471007] __vmalloc_node_range+0x73/0x290 >> [ 80.471007] ? _do_fork+0xf3/0x6f0 >> [ 80.471007] ? copy_process.part.31+0x12a/0x20c0 >> [ 80.471007] copy_process.part.31+0x793/0x20c0 >> [ 80.471007] ? _do_fork+0xf3/0x6f0 >> [ 80.471007] _do_fork+0xf3/0x6f0 >> [ 80.471007] ? __might_fault+0x8c/0xa0 >> [ 80.471007] ? __might_fault+0x43/0xa0 >> [ 80.471007] ? trace_hardirqs_on_caller+0xf5/0x1b0 >> [ 80.471007] SyS_clone+0x19/0x20 >> [ 80.471007] do_syscall_64+0x6c/0x1f0 >> [ 80.471007] entry_SYSCALL64_slow_path+0x25/0x25 >> [ 80.471007] RIP: 0033:0x7fac2f6b6941 >> [ 80.471007] RSP: 002b:00007ffdb42f3c30 EFLAGS: 00000246 ORIG_RAX: >> 0000000000000038 >> [ 80.471007] RAX: ffffffffffffffda RBX: 00007ffdb42f3c30 RCX: 00007fac2f6b6941 >> [ 80.471007] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 >> [ 80.471007] RBP: 00007ffdb42f3c80 R08: 00007fac30a4f800 R09: 000000000000001c >> [ 80.471007] R10: 00007fac30a4fad0 R11: 0000000000000246 R12: 0000000000000000 >> [ 80.471007] R13: 0000000000000020 R14: 0000000000000000 R15: 0000000000000000 >> [ 80.471007] Code: 18 97 01 e8 1d 72 5a 00 48 8b 03 4c 85 f8 75 19 >> 49 39 c5 77 16 48 8b 45 a8 48 8b 5d b0 48 3b 58 08 0f 83 5e ff ff ff >> 0f 0b 0f 0b <0f> 0b e8 23 c7 e6 ff 48 89 3d 24 18 97 01 e9 cd fe ff ff >> 4c 89 >> [ 80.471007] RIP: alloc_vmap_area+0x366/0x390 RSP: ffff9c6a43d5bc58 >> [ 80.506584] ---[ end trace 14dbfb61a09961b9 ]--- >> >> >> Steps to reproduce: >> $ apt-get install gcc make protobuf-c-compiler libprotobuf-c0-dev libaio-dev \ >> libprotobuf-dev protobuf-compiler python-ipaddr libcap-dev \ >> libnl-3-dev gdb bash python-protobuf >> $ git clone https://github.com/xemul/criu.git >> $ cd criu >> $ make >> $ python test/zdtm.py run -a -p 4 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>