linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Kernel panic due to stack recursion when copying data from a damaged filesystem
@ 2023-03-23  1:20 David Ryskalczyk
  2023-03-23  6:41 ` Qu Wenruo
  0 siblings, 1 reply; 9+ messages in thread
From: David Ryskalczyk @ 2023-03-23  1:20 UTC (permalink / raw)
  To: linux-btrfs

Hi,

In the process of transferring data from a damaged filesystem, I came across a file which would panic the system upon reading. Further debugging indicates that this is due to recursion in btrfs_repair_one_sector.

While I do not expect this file to be recoverable, a recursion limit to prevent kernel panic and system lockup would be worthwhile.

Error log and stack trace follows (kernel version is 6.2.6, kasan enabled).

[  252.752577] BTRFS error (device sdh): level verify failed on logical 27258408435712 mirror 1 wanted 0 found 1
[  252.806147] BTRFS error (device sdh): level verify failed on logical 27258408435712 mirror 2 wanted 0 found 1
[  252.848313] BTRFS error (device sdh): level verify failed on logical 27258408435712 mirror 3 wanted 0 found 1
[  252.898989] BTRFS error (device sdh): level verify failed on logical 27258408435712 mirror 4 wanted 0 found 1
** Above four lines repeated an additional 24 times
[  254.601885] BUG: TASK stack guard page was hit at 000000000b8efb37 (stack is 00000000e95f2615..000000008aa34447)
[  254.603929] stack guard page: 0000 [#1] PREEMPT SMP KASAN NOPTI
[  254.604763] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.16.2-1-1 04/01/2014
[  254.604874] RIP: 0010:kasan_check_range (mm/kasan/generic.c:188) 
[ 254.605650] Code: 00 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 0f 1f 00 48 85 f6 0f 84 6e 01 00 00 49 89 f9 41 54 44 0f b6 c2 <55> 53 49 01 f1 0f 82 15 01 00 0
All code
========
   0:	00 0f                	add    %cl,(%rdi)
   2:	1f                   	(bad)
   3:	00 90 90 90 90 90    	add    %dl,-0x6f6f6f70(%rax)
   9:	90                   	nop
   a:	90                   	nop
   b:	90                   	nop
   c:	90                   	nop
   d:	90                   	nop
   e:	90                   	nop
   f:	90                   	nop
  10:	90                   	nop
  11:	90                   	nop
  12:	90                   	nop
  13:	90                   	nop
  14:	66 0f 1f 00          	nopw   (%rax)
  18:	48 85 f6             	test   %rsi,%rsi
  1b:	0f 84 6e 01 00 00    	je     0x18f
  21:	49 89 f9             	mov    %rdi,%r9
  24:	41 54                	push   %r12
  26:	44 0f b6 c2          	movzbl %dl,%r8d
  2a:*	55                   	push   %rbp		<-- trapping instruction
  2b:	53                   	push   %rbx
  2c:	49 01 f1             	add    %rsi,%r9
  2f:	0f 82 15 01 00 00    	jb     0x14a

Code starting with the faulting instruction
===========================================
   0:	55                   	push   %rbp
   1:	53                   	push   %rbx
   2:	49 01 f1             	add    %rsi,%r9
   5:	0f 82 15 01 00 00    	jb     0x120
[  254.605703] RSP: 0018:ffffc90003cd0000 EFLAGS: 00000002
[  254.606299] RAX: ffff8881097c6000 RBX: ffffc90003cd0080 RCX: ffffffffa3366ec3
[  254.606327] RDX: 0000000000000001 RSI: 0000000000000070 RDI: ffffc90003cd0080
[  254.606351] RBP: 0000000000000070 R08: 0000000000000001 R09: ffffc90003cd0080
[  254.606375] R10: fffff5200079a07d R11: ffffffffa6f274a0 R12: 0000000000000000
[  254.606399] R13: ffffc90003cd0150 R14: ffffc90003cd0080 R15: ffffc90003cd00a8
[  254.606447] FS:  00007f324a860740(0000) GS:ffff88811b200000(0000) knlGS:0000000000000000
[  254.606477] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  254.606489] CR2: ffffc90003ccfff8 CR3: 0000000106af4000 CR4: 00000000000006f0
[  254.606598] Call Trace:
[  254.606713]  <TASK>
[  254.606796] memset (mm/kasan/shadow.c:44) 
[  254.606837] __unwind_start (arch/x86/kernel/unwind_orc.c:665) 
[  254.606860] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:770) btrfs
[  254.607437] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:770) btrfs
[  254.607722] ? __pfx_stack_trace_consume_entry (kernel/stacktrace.c:83) 
[  254.607737] arch_stack_walk (arch/x86/kernel/stacktrace.c:24) 
[  254.607761] stack_trace_save (kernel/stacktrace.c:123) 
[  254.607772] ? __pfx_stack_trace_save (kernel/stacktrace.c:114) 
[  254.607787] ? __sbitmap_get_word (./arch/x86/include/asm/bitops.h:138 ./arch/x86/include/asm/bitops.h:144 ./include/asm-generic/bitops/instrumented-lock.h:58 lib/sbitmap.c:159) 
[  254.607803] kasan_save_stack (mm/kasan/common.c:46) 
[  254.607848] __kasan_record_aux_stack (mm/kasan/generic.c:493) 
[  254.607860] insert_work (./include/linux/instrumented.h:72 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 kernel/workqueue.c:635 kernel/workqueue.c:642 kernel/workqueue.c:1361) 
[  254.607873] ? __pfx_timer_delete (kernel/time/timer.c:1360) 
[  254.607886] __queue_work (kernel/workqueue.c:1520) 
[  254.607899] ? try_to_grab_pending (./arch/x86/include/asm/bitops.h:138 ./include/asm-generic/bitops/instrumented-atomic.h:72 kernel/workqueue.c:1280) 
[  254.607912] mod_delayed_work_on (./arch/x86/include/asm/irqflags.h:137 kernel/workqueue.c:1740) 
[  254.607924] ? __pfx_mod_delayed_work_on (kernel/workqueue.c:1730) 
[  254.607937] ? __blk_mq_delay_run_hw_queue (block/blk-mq.c:2203 block/blk-mq.c:2262) 
[  254.607953] kblockd_mod_delayed_work_on (block/blk-core.c:1039) 
[  254.607964] blk_mq_sched_insert_requests (./include/linux/rcupdate.h:771 ./include/linux/percpu-refcount.h:330 ./include/linux/percpu-refcount.h:351 block/blk-mq-sched.c:494) 
[  254.607981] blk_mq_flush_plug_list (block/blk-mq.c:2808) 
[  254.607997] ? __pfx_blk_mq_flush_plug_list (block/blk-mq.c:2769) 
[  254.608009] ? __pfx___submit_bio (block/blk-core.c:596) 
[  254.608028] __blk_flush_plug (block/blk-core.c:1152) 
[  254.608039] ? psi_group_change (./arch/x86/include/asm/bitops.h:207 (discriminator 1) ./arch/x86/include/asm/bitops.h:239 (discriminator 1) ./include/asm-generic/bitops/instrumented-non-atomic.h:142 (discriminator 1) kernel/sched/psi.c:857 (discriminator 1)) 
[  254.608051] ? __pfx_sched_clock_cpu (kernel/sched/clock.c:364) 
[  254.608063] ? _raw_spin_lock (./arch/x86/include/asm/atomic.h:202 ./include/linux/atomic/atomic-instrumented.h:543 ./include/asm-generic/qspinlock.h:111 ./include/linux/spinlock.h:186 ./include/linux/spinlock_api_smp.h:134 kernel/locking/spinlock.c:154) 
[  254.608079] ? __pfx___blk_flush_plug (block/blk-core.c:1141) 
[  254.608091] ? _raw_spin_lock_irq (./arch/x86/include/asm/atomic.h:202 ./include/linux/atomic/atomic-instrumented.h:543 ./include/asm-generic/qspinlock.h:111 ./include/linux/spinlock.h:186 ./include/linux/spinlock_api_smp.h:120 kernel/locking/spinlock.c:170) 
[  254.608103] ? __pfx__raw_spin_lock_irq (kernel/locking/spinlock.c:169) 
[  254.608114] ? psi_task_change (kernel/sched/psi.c:901 (discriminator 1)) 
[  254.608128] io_schedule (kernel/sched/core.c:8871) 
[  254.608143] folio_wait_bit_common (mm/filemap.c:1286) 
[  254.608160] ? __pfx_folio_wait_bit_common (mm/filemap.c:1220) 
[  254.608171] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.608485] ? __pfx_submit_extent_page (fs/btrfs/extent_io.c:1474) btrfs
[  254.608766] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.609047] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.609339] ? __pfx_wake_page_function (mm/filemap.c:1079) 
[  254.609356] ? submit_one_bio (fs/btrfs/extent_io.c:156) btrfs
[  254.609642] read_extent_buffer_pages (./include/linux/pagemap.h:1024 ./include/linux/pagemap.h:1036 fs/btrfs/extent_io.c:5029) btrfs
[  254.609932] ? __pfx_read_extent_buffer_pages (fs/btrfs/extent_io.c:4919) btrfs
[  254.610214] ? __pfx__raw_spin_lock (kernel/locking/spinlock.c:153) 
[  254.610230] ? __pfx_end_bio_extent_readpage (fs/btrfs/extent_io.c:1077) btrfs
[  254.610516] ? folio_unlock (./arch/x86/include/asm/bitops.h:101 ./include/asm-generic/bitops/instrumented-lock.h:78 mm/filemap.c:1526) 
[  254.610530] btrfs_read_extent_buffer (fs/btrfs/disk-io.c:303) btrfs
[  254.610804] read_tree_block (fs/btrfs/disk-io.c:1025) btrfs
[  254.611070] ? find_extent_buffer (fs/btrfs/extent_io.c:4328) btrfs
[  254.611357] read_block_for_search (fs/btrfs/ctree.c:1620) btrfs
[  254.611615] ? rwsem_down_read_slowpath (./include/trace/events/lock.h:95 ./include/trace/events/lock.h:95 kernel/locking/rwsem.c:1077) 
[  254.611630] ? __pfx_read_block_for_search (fs/btrfs/ctree.c:1533) btrfs
[  254.611901] btrfs_search_slot (fs/btrfs/ctree.c:2225) btrfs
[  254.612166] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.612448] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.612738] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.613020] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.613312] ? __pfx_btrfs_search_slot (fs/btrfs/ctree.c:2037) btrfs
[  254.613567] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.613858] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.614152] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.614441] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.614733] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.615012] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.615301] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.615581] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.615869] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.616152] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.616443] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.616726] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.617016] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.617297] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.617587] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.617868] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.618161] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.618448] btrfs_lookup_csum (fs/btrfs/file-item.c:221) btrfs
[  254.618713] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.618996] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.619289] ? __pfx_btrfs_lookup_csum (fs/btrfs/file-item.c:207) btrfs
[  254.619555] ? _raw_write_lock_irqsave (./include/asm-generic/qrwlock.h:101 ./include/linux/rwlock_api_smp.h:187 kernel/locking/spinlock.c:318) 
[  254.619570] ? btrfs_csum_root (fs/btrfs/disk-io.c:1236) btrfs
[  254.619838] ? __pfx_btrfs_csum_root (fs/btrfs/disk-io.c:1236) btrfs
[  254.620108] ? _kmem_cache_alloc (mm/slub.c:3454 mm/slub.c:3460 mm/slub.c:3467 mm/slub.c:3476) 
[  254.620124] btrfs_lookup_bio_sums (fs/btrfs/file-item.c:315 fs/btrfs/file-item.c:484) btrfs
[  254.620393] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.620680] ? end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.620972] ? btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.621254] ? bio_init (./arch/x86/include/asm/atomic.h:41 ./include/linux/atomic/atomic-instrumented.h:42 block/bio.c:280) 
[  254.621273] ? __pfx_btrfs_lookup_bio_sums (fs/btrfs/file-item.c:393) btrfs
[  254.621540] ? bio_add_page (block/bio.c:1146) 
[  254.621551] ? __pfx_bio_add_page (block/bio.c:1138) 
[  254.621560] ? _raw_spin_lock (./arch/x86/include/asm/atomic.h:202 ./include/linux/atomic/atomic-instrumented.h:543 ./include/asm-generic/qspinlock.h:111 ./include/linux/spinlock.h:186 ./include/linux/spinlock_api_smp.h:134 kernel/locking/spinlock.c:154) 
[  254.621576] btrfs_submit_data_read_bio (fs/btrfs/inode.c:2787) btrfs
[  254.621854] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.622147] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.622441] ? bio_add_page (block/bio.c:1146) 
[  254.622461] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.622754] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.623045] ? bio_add_page (block/bio.c:1146) 
[  254.623065] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.623358] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.623652] ? bio_add_page (block/bio.c:1146) 
[  254.623671] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.623969] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.624262] ? bio_add_page (block/bio.c:1146) 
[  254.624281] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.624574] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.624868] ? bio_add_page (block/bio.c:1146) 
[  254.624887] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.625178] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.625468] ? bio_add_page (block/bio.c:1146) 
[  254.625488] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.625780] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.626070] ? bio_add_page (block/bio.c:1146) 
[  254.626090] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.626381] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.626675] ? bio_add_page (block/bio.c:1146) 
[  254.626695] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.626988] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.627282] ? bio_add_page (block/bio.c:1146) 
[  254.627302] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.627594] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.627887] ? bio_add_page (block/bio.c:1146) 
[  254.627907] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.628201] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.628496] ? bio_add_page (block/bio.c:1146) 
[  254.628516] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.628810] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.629104] ? bio_add_page (block/bio.c:1146) 
[  254.629124] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.629419] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.629710] ? bio_add_page (block/bio.c:1146) 
[  254.629730] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.630022] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.630315] ? bio_add_page (block/bio.c:1146) 
[  254.630334] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.630627] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.630920] ? bio_add_page (block/bio.c:1146) 
[  254.630940] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.631233] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.631528] ? bio_add_page (block/bio.c:1146) 
[  254.631548] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.631843] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.632135] ? bio_add_page (block/bio.c:1146) 
[  254.632154] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.632447] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.632739] ? bio_add_page (block/bio.c:1146) 
[  254.632759] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.633053] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.633347] ? bio_add_page (block/bio.c:1146) 
[  254.633367] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.633660] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.633955] ? bio_add_page (block/bio.c:1146) 
[  254.633974] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.634272] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.634565] ? bio_add_page (block/bio.c:1146) 
[  254.634585] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.634881] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.635176] ? bio_add_page (block/bio.c:1146) 
[  254.635195] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.635488] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.635782] ? bio_add_page (block/bio.c:1146) 
[  254.635802] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.636095] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.636389] ? bio_add_page (block/bio.c:1146) 
[  254.636409] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.636703] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.636996] ? bio_add_page (block/bio.c:1146) 
[  254.637016] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.637309] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.637602] ? bio_add_page (block/bio.c:1146) 
[  254.637622] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.637913] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.638208] ? bio_add_page (block/bio.c:1146) 
[  254.638228] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.638520] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.638813] ? bio_add_page (block/bio.c:1146) 
[  254.638833] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.639126] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.639418] ? bio_add_page (block/bio.c:1146) 
[  254.639438] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.639730] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.640023] ? bio_add_page (block/bio.c:1146) 
[  254.640042] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.640336] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.640629] ? bio_add_page (block/bio.c:1146) 
[  254.640648] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.640944] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.641236] ? bio_add_page (block/bio.c:1146) 
[  254.641256] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.641551] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.641844] ? bio_add_page (block/bio.c:1146) 
[  254.641864] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.642156] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.642448] ? bio_add_page (block/bio.c:1146) 
[  254.642468] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.642763] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.643055] ? bio_add_page (block/bio.c:1146) 
[  254.643075] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.643366] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.643657] ? bio_add_page (block/bio.c:1146) 
[  254.643676] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.643967] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.644260] ? bio_add_page (block/bio.c:1146) 
[  254.644280] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.644575] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.644872] ? bio_add_page (block/bio.c:1146) 
[  254.644892] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.645185] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.645480] ? bio_add_page (block/bio.c:1146) 
[  254.645499] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.645791] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.646084] ? bio_add_page (block/bio.c:1146) 
[  254.646104] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.646399] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.646690] ? bio_add_page (block/bio.c:1146) 
[  254.646710] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.647003] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.647294] ? bio_add_page (block/bio.c:1146) 
[  254.647313] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.647604] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.647896] ? bio_add_page (block/bio.c:1146) 
[  254.647916] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.648210] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.648502] ? bio_add_page (block/bio.c:1146) 
[  254.648521] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.648814] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.649107] ? bio_add_page (block/bio.c:1146) 
[  254.649126] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.649419] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.649710] ? bio_add_page (block/bio.c:1146) 
[  254.649730] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.650023] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.650315] ? bio_add_page (block/bio.c:1146) 
[  254.650335] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.650627] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.650919] ? bio_add_page (block/bio.c:1146) 
[  254.650939] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.651236] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.651531] ? bio_add_page (block/bio.c:1146) 
[  254.651551] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.651843] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.652134] ? bio_add_page (block/bio.c:1146) 
[  254.652154] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.652448] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.652740] ? bio_add_page (block/bio.c:1146) 
[  254.652760] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.653053] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.653347] ? bio_add_page (block/bio.c:1146) 
[  254.653367] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.653662] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.653955] ? bio_add_page (block/bio.c:1146) 
[  254.653975] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.654268] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.654561] ? bio_add_page (block/bio.c:1146) 
[  254.654581] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.654876] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.655316] ? bio_add_page (block/bio.c:1146) 
[  254.655337] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.655632] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.655926] ? bio_add_page (block/bio.c:1146) 
[  254.655945] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.656245] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.656539] ? bio_add_page (block/bio.c:1146) 
[  254.656559] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.656854] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.657146] ? bio_add_page (block/bio.c:1146) 
[  254.657166] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.657462] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.657753] ? bio_add_page (block/bio.c:1146) 
[  254.657773] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.658069] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.658362] ? bio_add_page (block/bio.c:1146) 
[  254.658382] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.658676] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.658969] ? bio_add_page (block/bio.c:1146) 
[  254.658990] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.659283] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.659576] ? bio_add_page (block/bio.c:1146) 
[  254.659597] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.659890] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.660184] ? bio_add_page (block/bio.c:1146) 
[  254.660204] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.660499] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.660794] ? bio_add_page (block/bio.c:1146) 
[  254.660815] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.661108] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.661403] ? bio_add_page (block/bio.c:1146) 
[  254.661423] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.661715] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.662007] ? bio_add_page (block/bio.c:1146) 
[  254.662027] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.662320] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.662612] ? bio_add_page (block/bio.c:1146) 
[  254.662633] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.662927] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.663220] ? bio_add_page (block/bio.c:1146) 
[  254.663240] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.663535] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.663828] ? bio_add_page (block/bio.c:1146) 
[  254.663848] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.664142] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.664434] ? bio_add_page (block/bio.c:1146) 
[  254.664455] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.664751] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.665045] ? bio_add_page (block/bio.c:1146) 
[  254.665066] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.665359] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.665654] ? bio_add_page (block/bio.c:1146) 
[  254.665673] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.665967] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.666261] ? bio_add_page (block/bio.c:1146) 
[  254.666281] btrfs_repair_one_sector (fs/btrfs/extent_io.c:775) btrfs
[  254.666572] end_compressed_bio_read (fs/btrfs/compression.c:197) btrfs
[  254.666866] ? bio_add_page (block/bio.c:1141) 
[  254.666886] btrfs_submit_compressed_read (fs/btrfs/bio.h:93 fs/btrfs/compression.c:805) btrfs
[  254.667185] ? __pfx_btrfs_submit_compressed_read (fs/btrfs/compression.c:665) btrfs
[  254.667489] submit_one_bio (fs/btrfs/extent_io.c:160) btrfs
[  254.667773] ? kasan_save_free_info (mm/kasan/generic.c:525) 
[  254.667789] submit_extent_page (fs/btrfs/extent_io.c:1487) btrfs
[  254.668075] ? kmem_cache_free (mm/slub.c:1807 mm/slub.c:3788 mm/slub.c:3810) 
[  254.668091] ? btrfs_get_extent (fs/btrfs/inode.c:7124) btrfs
[  254.668374] ? __pfx_submit_extent_page (fs/btrfs/extent_io.c:1474) btrfs
[  254.668657] ? __pfx_btrfs_get_extent (fs/btrfs/inode.c:6942) btrfs
[  254.668937] ? btrfs_lookup_ordered_range (fs/btrfs/ordered-data.c:855) btrfs
[  254.669219] ? __pfx_lock_extent (fs/btrfs/extent-io-tree.c:1730) btrfs
[  254.669527] ? __pfx_btrfs_lookup_ordered_range (fs/btrfs/ordered-data.c:855) btrfs
[  254.669812] btrfs_do_readpage (fs/btrfs/extent_io.c:1780) btrfs
[  254.670105] ? xas_find (lib/xarray.c:1253) 
[  254.670117] ? _raw_spin_trylock (./arch/x86/include/asm/atomic.h:202 ./include/linux/atomic/atomic-instrumented.h:543 ./include/asm-generic/qspinlock.h:97 ./include/linux/spinlock.h:192 ./include/linux/spinlock_api_smp.h:89 kernel/locking/spinlock.c:138) 
[  254.670133] extent_readahead (./include/linux/page-flags.h:251 ./include/linux/mm.h:1318 fs/btrfs/extent_io.c:1834 fs/btrfs/extent_io.c:3229) btrfs
[  254.670424] ? __pfx_extent_readahead (fs/btrfs/extent_io.c:3218) btrfs
[  254.670712] ? __mod_memcg_lruvec_state (mm/memcontrol.c:613 mm/memcontrol.c:801) 
[  254.670727] ? __pfx_end_bio_extent_readpage (fs/btrfs/extent_io.c:1077) btrfs
[  254.671011] ? xa_get_order (lib/xarray.c:1762) 
[  254.671044] read_pages (./include/linux/pagemap.h:1245 ./include/linux/pagemap.h:1285 mm/readahead.c:167) 
[  254.671057] ? __pfx_workingset_update_node (mm/workingset.c:545) 
[  254.671074] ? folio_batch_add_and_move (./arch/x86/include/asm/atomic.h:29 ./include/linux/atomic/atomic-instrumented.h:28 ./include/linux/swap.h:391 mm/swap.c:262) 
[  254.671087] ? __pfx_read_pages (mm/readahead.c:148) 
[  254.671099] ? folio_add_lru (./arch/x86/include/asm/preempt.h:95 mm/swap.c:548) 
[  254.671118] page_cache_ra_unbounded (./include/linux/fs.h:824 mm/readahead.c:271) 
[  254.671137] filemap_get_pages (./include/linux/instrumented.h:72 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/linux/page-flags.h:711 mm/filemap.c:2621) 
[  254.671155] ? __copy_page_from_iter_atomic (lib/iov_iter.c:813) 
[  254.671171] ? __pfx_filemap_get_pages (mm/filemap.c:2582) 
[  254.671185] ? __pfx___copy_page_from_iter_atomic (lib/iov_iter.c:811) 
[  254.671205] filemap_read (mm/filemap.c:2695) 
[  254.671220] ? generic_perform_write (./include/linux/uio.h:272 mm/filemap.c:3809) 
[  254.671235] ? __pfx_generic_perform_write (mm/filemap.c:3738) 
[  254.671247] ? __pfx_filemap_read (mm/filemap.c:2663) 
[  254.671268] ? fsnotify_perm.part.0 (./arch/x86/include/asm/atomic64_64.h:22 ./include/linux/atomic/atomic-long.h:29 ./include/linux/atomic/atomic-instrumented.h:1266 ./include/linux/fsnotify.h:62 ./include/linux/fsnotify.h:99 ./include/linux/fsnotify.h:124) 
[  254.671283] vfs_read (./include/linux/fs.h:2184 fs/read_write.c:389 fs/read_write.c:470) 
[  254.671300] ? __pfx_vfs_read (fs/read_write.c:451) 
[  254.671318] ? __fget_light (./include/linux/atomic/atomic-arch-fallback.h:227 ./include/linux/atomic/atomic-instrumented.h:35 fs/file.c:1015) 
[  254.671329] ? __fget_light (./include/linux/atomic/atomic-arch-fallback.h:227 ./include/linux/atomic/atomic-instrumented.h:35 fs/file.c:1015) 
[  254.671344] ksys_read (fs/read_write.c:613) 
[  254.671357] ? __pfx_ksys_read (fs/read_write.c:603) 
[  254.671370] ? ksys_read (fs/read_write.c:613) 
[  254.671380] ? __pfx_ksys_read (fs/read_write.c:603) 
[  254.671393] do_syscall_64 (arch/x86/entry/common.c:50 arch/x86/entry/common.c:80) 
[  254.671406] ? do_syscall_64 (arch/x86/entry/common.c:87) 
[  254.671419] ? syscall_exit_to_user_mode (./arch/x86/include/asm/jump_label.h:27 ./include/linux/context_tracking_state.h:106 ./include/linux/context_tracking.h:41 kernel/entry/common.c:134 kernel/entry/common.c:298) 
[  254.671431] ? do_syscall_64 (arch/x86/entry/common.c:87) 
[  254.671442] ? syscall_exit_to_user_mode (./arch/x86/include/asm/jump_label.h:27 ./include/linux/context_tracking_state.h:106 ./include/linux/context_tracking.h:41 kernel/entry/common.c:134 kernel/entry/common.c:298) 
[  254.671453] ? do_syscall_64 (arch/x86/entry/common.c:87) 
[  254.671465] ? syscall_exit_to_user_mode (./arch/x86/include/asm/jump_label.h:27 ./include/linux/context_tracking_state.h:106 ./include/linux/context_tracking.h:41 kernel/entry/common.c:134 kernel/entry/common.c:298) 
[  254.671476] ? do_syscall_64 (arch/x86/entry/common.c:87) 
[  254.671485] ? do_syscall_64 (arch/x86/entry/common.c:87) 
[  254.671495] ? do_syscall_64 (arch/x86/entry/common.c:87) 
[  254.671506] ? do_syscall_64 (arch/x86/entry/common.c:87) 
[  254.671515] ? do_syscall_64 (arch/x86/entry/common.c:87) 
[  254.671526] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:120) 
[  254.671573] RIP: 0033:0x7f324a959931
[ 254.671806] Code: 31 c0 e9 b2 fe ff ff 50 48 8d 3d 72 81 0a 00 e8 25 13 02 00 0f 1f 44 00 00 f3 0f 1e fa 80 3d cd 9a 0e 00 00 74 13 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 57 c3 66 4
All code
========
   0:	31 c0                	xor    %eax,%eax
   2:	e9 b2 fe ff ff       	jmp    0xfffffffffffffeb9
   7:	50                   	push   %rax
   8:	48 8d 3d 72 81 0a 00 	lea    0xa8172(%rip),%rdi        # 0xa8181
   f:	e8 25 13 02 00       	call   0x21339
  14:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
  19:	f3 0f 1e fa          	endbr64
  1d:	80 3d cd 9a 0e 00 00 	cmpb   $0x0,0xe9acd(%rip)        # 0xe9af1
  24:	74 13                	je     0x39
  26:	31 c0                	xor    %eax,%eax
  28:	0f 05                	syscall
  2a:*	48 3d 00 f0 ff ff    	cmp    $0xfffffffffffff000,%rax		<-- trapping instruction
  30:	77 57                	ja     0x89
  32:	c3                   	ret
  33:	66                   	data16
  34:	04                   	.byte 0x4

Code starting with the faulting instruction
===========================================
   0:	48 3d 00 f0 ff ff    	cmp    $0xfffffffffffff000,%rax
   6:	77 57                	ja     0x5f
   8:	c3                   	ret
   9:	66                   	data16
   a:	04                   	.byte 0x4
[  254.671819] RSP: 002b:00007ffc3afc0238 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
[  254.671899] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f324a959931
[  254.671909] RDX: 0000000000020000 RSI: 00007f324a83f000 RDI: 0000000000000004
[  254.671916] RBP: 0000000000000000 R08: 00007f324a85f000 R09: 0000000000000000
[  254.671923] R10: 00007f324a83f000 R11: 0000000000000246 R12: 00007ffc3afc1d00
[  254.671930] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[  254.671966]  </TASK>
[  254.672004] Modules linked in: mousedev kvm_amd ppdev ccp kvm psmouse irqbypass pcspkr i2c_piix4 parport_pc parport mac_hid btrfs blake2b_generic xor raid6_pq libcrc32c cfg8021k
[  257.929353] ---[ end trace 0000000000000000 ]---
[  257.929447] RIP: 0010:kasan_check_range (mm/kasan/generic.c:188) 
[ 257.929484] Code: 00 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 0f 1f 00 48 85 f6 0f 84 6e 01 00 00 49 89 f9 41 54 44 0f b6 c2 <55> 53 49 01 f1 0f 82 15 01 00 0
All code
========
   0:	00 0f                	add    %cl,(%rdi)
   2:	1f                   	(bad)
   3:	00 90 90 90 90 90    	add    %dl,-0x6f6f6f70(%rax)
   9:	90                   	nop
   a:	90                   	nop
   b:	90                   	nop
   c:	90                   	nop
   d:	90                   	nop
   e:	90                   	nop
   f:	90                   	nop
  10:	90                   	nop
  11:	90                   	nop
  12:	90                   	nop
  13:	90                   	nop
  14:	66 0f 1f 00          	nopw   (%rax)
  18:	48 85 f6             	test   %rsi,%rsi
  1b:	0f 84 6e 01 00 00    	je     0x18f
  21:	49 89 f9             	mov    %rdi,%r9
  24:	41 54                	push   %r12
  26:	44 0f b6 c2          	movzbl %dl,%r8d
  2a:*	55                   	push   %rbp		<-- trapping instruction
  2b:	53                   	push   %rbx
  2c:	49 01 f1             	add    %rsi,%r9
  2f:	0f 82 15 01 00 00    	jb     0x14a

Code starting with the faulting instruction
===========================================
   0:	55                   	push   %rbp
   1:	53                   	push   %rbx
   2:	49 01 f1             	add    %rsi,%r9
   5:	0f 82 15 01 00 00    	jb     0x120
[  257.929498] RSP: 0018:ffffc90003cd0000 EFLAGS: 00000002
[  257.929515] RAX: ffff8881097c6000 RBX: ffffc90003cd0080 RCX: ffffffffa3366ec3
[  257.929524] RDX: 0000000000000001 RSI: 0000000000000070 RDI: ffffc90003cd0080
[  257.929532] RBP: 0000000000000070 R08: 0000000000000001 R09: ffffc90003cd0080
[  257.929539] R10: fffff5200079a07d R11: ffffffffa6f274a0 R12: 0000000000000000
[  257.929546] R13: ffffc90003cd0150 R14: ffffc90003cd0080 R15: ffffc90003cd00a8
[  257.929556] FS:  00007f324a860740(0000) GS:ffff88811b200000(0000) knlGS:0000000000000000
[  257.929566] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  257.929573] CR2: ffffc90003ccfff8 CR3: 0000000106af4000 CR4: 00000000000006f0
[  257.929665] Kernel panic - not syncing: Fatal exception in interrupt
[  257.930205] Kernel Offset: 0x22200000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)


Regards,
David

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

end of thread, other threads:[~2023-03-24 23:06 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-23  1:20 Kernel panic due to stack recursion when copying data from a damaged filesystem David Ryskalczyk
2023-03-23  6:41 ` Qu Wenruo
2023-03-23  7:42   ` Christoph Hellwig
2023-03-23  7:57     ` Qu Wenruo
2023-03-23  8:09       ` Christoph Hellwig
2023-03-23 13:17         ` David Ryskalczyk
2023-03-24  1:01           ` Christoph Hellwig
2023-03-24 11:44             ` David Ryskalczyk
2023-03-24 23:06               ` Christoph Hellwig

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).