On 01/06/2012 07:51 AM, David Sterba wrote:
> Hi, I've let it run through xfstests and ended at 091, patches applied
> on top of 3.2, mount options
> "compress-force=lzo,discard,inode_cache,space_cache,autodefrag"
> fresh mkfs with defaults.
> 


Hi David,

Thanks a lot for your work!

I also find this and fix it.

I will send V2 patchset after it goes through xfstests.

thanks,
liubo


> [ 1081.623819] btrfs: force lzo compression
> [ 1081.629166] btrfs: enabling inode map caching
> [ 1081.634853] btrfs: enabling auto defrag
> [ 1081.638569] btrfs: disk space caching is enabled
> [ 1119.693957] ------------[ cut here ]------------
> [ 1119.697876] kernel BUG at fs/btrfs/file.c:530!
> [ 1119.697876] invalid opcode: 0000 [#1] SMP
> [ 1119.697876] CPU 1
> [ 1119.697876] Modules linked in: loop btrfs aoe
> [ 1119.697876]
> [ 1119.697876] Pid: 25819, comm: fsx Not tainted 3.2.0-default+ #95 Intel 
> Corporation Santa Rosa platform/Matanzas
> [ 1119.697876] RIP: 0010:[<ffffffffa0048a18>]  [<ffffffffa0048a18>] 
> btrfs_drop_extent_cache+0x3f8/0x400 [btrfs]
> [ 1119.697876] RSP: 0018:ffff88000c47f698  EFLAGS: 00010282
> [ 1119.697876] RAX: 00000000ffffffef RBX: ffff88006ff01e48 RCX: 
> 0000000000026fff
> [ 1119.697876] RDX: ffff88006ed5d830 RSI: 0000000000022000 RDI: 
> 0000000000000000
> [ 1119.697876] RBP: ffff88000c47f738 R08: 0000000000000000 R09: 
> 0000000000022000
> [ 1119.697876] R10: fffffffffffffffe R11: 0000000000026fff R12: 
> ffff88001ada9e48
> [ 1119.697876] R13: 000000000001f000 R14: 0000000000000000 R15: 
> ffff88000c47f708
> [ 1119.697876] FS:  00007f262e570700(0000) GS:ffff88007de00000(0000) 
> knlGS:0000000000000000
> [ 1119.697876] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 1119.697876] CR2: 00007fc4364fc000 CR3: 0000000079435000 CR4: 
> 00000000000006e0
> [ 1119.697876] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 
> 0000000000000000
> [ 1119.697876] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 
> 0000000000000400
> [ 1119.697876] Process fsx (pid: 25819, threadinfo ffff88000c47e000, task 
> ffff880063640700)
> [ 1119.697876] Stack:
> [ 1119.697876]  ffff880000000000 ffffffff81092040 ffff88000c47f6f0 
> 0100000000000246
> [ 1119.697876]  0000000000000001 0000000000000000 0000000000003000 
> ffff88006e5c44f0
> [ 1119.697876]  ffff88006e5c43e0 0000000000000000 0000000000000000 
> 0000000000000000
> [ 1119.697876] Call Trace:
> [ 1119.697876]  [<ffffffff81092040>] ? trace_hardirqs_on_caller+0x20/0x1d0
> [ 1119.697876]  [<ffffffffa003a0b0>] ? csum_exist_in_range+0xa0/0xa0 [btrfs]
> [ 1119.697876]  [<ffffffffa003f296>] cow_file_range+0x136/0x3e0 [btrfs]
> [ 1119.697876]  [<ffffffff810921fd>] ? trace_hardirqs_on+0xd/0x10
> [ 1119.697876]  [<ffffffffa003f8a7>] run_delalloc_nocow+0x367/0x820 [btrfs]
> [ 1119.697876]  [<ffffffff81357dae>] ? do_raw_spin_unlock+0x5e/0xb0
> [ 1119.697876]  [<ffffffffa00400c9>] run_delalloc_range+0x369/0x370 [btrfs]
> [ 1119.697876]  [<ffffffffa00582c0>] __extent_writepage+0x5f0/0x750 [btrfs]
> [ 1119.697876]  [<ffffffff81349f4d>] ? 
> radix_tree_gang_lookup_tag_slot+0x8d/0xd0
> [ 1119.697876]  [<ffffffff810f30d1>] ? find_get_pages_tag+0x111/0x1b0
> [ 1119.697876]  [<ffffffffa0058692>] 
> extent_write_cache_pages.clone.0+0x272/0x3f0 [btrfs]
> [ 1119.697876]  [<ffffffff81357dae>] ? do_raw_spin_unlock+0x5e/0xb0
> [ 1119.697876]  [<ffffffff81131604>] ? kfree+0xd4/0x180
> [ 1119.697876]  [<ffffffff81092040>] ? trace_hardirqs_on_caller+0x20/0x1d0
> [ 1119.697876]  [<ffffffffa0058a56>] extent_writepages+0x46/0x60 [btrfs]
> [ 1119.697876]  [<ffffffffa003b590>] ? acls_after_inode_item+0xd0/0xd0 [btrfs]
> [ 1119.697876]  [<ffffffffa003ad17>] btrfs_writepages+0x27/0x30 [btrfs]
> [ 1120.018734]  [<ffffffff810fdcc4>] do_writepages+0x24/0x40
> [ 1120.018734]  [<ffffffff810f3cdb>] __filemap_fdatawrite_range+0x5b/0x60
> [ 1120.018734]  [<ffffffff810f3d3a>] filemap_write_and_wait_range+0x5a/0x80
> [ 1120.018734]  [<ffffffffa004859a>] btrfs_file_aio_write+0x4da/0x560 [btrfs]
> [ 1120.018734]  [<ffffffff8113a852>] do_sync_write+0xe2/0x120
> [ 1120.018734]  [<ffffffff8187d2ad>] ? __mutex_unlock_slowpath+0xdd/0x180
> [ 1120.018734]  [<ffffffff8187d35e>] ? mutex_unlock+0xe/0x10
> [ 1120.018734]  [<ffffffffa004703f>] ? btrfs_file_llseek+0x6f/0x390 [btrfs]
> [ 1120.018734]  [<ffffffff8113b15e>] vfs_write+0xce/0x190
> [ 1120.018734]  [<ffffffff8113b4a4>] sys_write+0x54/0xa0
> [ 1120.018734]  [<ffffffff81887a82>] system_call_fastpath+0x16/0x1b
> [ 1120.018734] Code: 5e 41 5f c9 c3 0f 0b be bf 01 00 00 48 c7 c7 e6 02 09 a0 
> 48 89 95 68 ff ff ff e8 e4 a2 00 e1 48 8b 95 68 ff ff ff e9 3c fc ff ff <0f> 
> 0b 0f 0b 0f 1f 40 00 55 48 89 e5 41 57 41 56 41 55 41 54 53
> [ 1120.018734] RIP  [<ffffffffa0048a18>] btrfs_drop_extent_cache+0x3f8/0x400 
> [btrfs]
> [ 1120.018734]  RSP <ffff88000c47f698>
> [ 1120.047841] ---[ end trace ca0f509767e0195d ]---
> 
> xfstests/091 output:
> 
> 091 57s ...     [19:47:50] [19:48:28] [failed, exit status 1] - output 
> mismatch (see 091.out.bad)
> --- 091.out     2011-11-01 10:31:12.000000000 +0100
> +++ 091.out.bad 2012-01-05 19:48:28.000000000 +0100
> @@ -5,3 +5,41 @@
>  fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W
>  fsx -N 10000 -o 32768 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W
>  fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -W
> +./091: line 46: 25819 Segmentation fault      $here/ltp/fsx $args 
> $TEST_DIR/junk >> $seq.full 2>&1
> +fsx -N 10000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W
> +mapped writes DISABLED
> +truncating to largest ever: 0x12a00
> +truncating to largest ever: 0x75400
> +fallocating to largest ever: 0x7a120
> +All operations completed A-OK!
> +fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W
> +mapped writes DISABLED
> +truncating to largest ever: 0x12a00
> +truncating to largest ever: 0x75400
> +fallocating to largest ever: 0x79cbf
> +fallocating to largest ever: 0x7a120
> +All operations completed A-OK!
> +fsx -N 10000 -o 32768 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W
> +mapped writes DISABLED
> +truncating to largest ever: 0x12a00
> +truncating to largest ever: 0x75400
> +fallocating to largest ever: 0x7a120
> +All operations completed A-OK!
> +fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W
> +mapped writes DISABLED
> +truncating to largest ever: 0x12a00
> +truncating to largest ever: 0x75400
> +fallocating to largest ever: 0x79cbf
> +fallocating to largest ever: 0x7a120
> +All operations completed A-OK!
> +fsx -N 10000 -o 32768 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W
> +mapped writes DISABLED
> +truncating to largest ever: 0x12a00
> +truncating to largest ever: 0x75400
> +fallocating to largest ever: 0x7a120
> +All operations completed A-OK!
> +fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -W
> +mapped writes DISABLED
> +truncating to largest ever: 0x12a00
> +truncating to largest ever: 0x75400
> +fallocating to largest ever: 0x7a120
> 
> Crash site(fs/btrfs/file.c:530):
> 
>  518                         if (compressed) {
>  519                                 split->block_len = em->block_len;
>  520                                 split->block_start = em->block_start;
>  521                                 split->orig_start = em->orig_start;
>  522                         } else {
>  523                                 split->block_len = split->len;
>  524                                 split->block_start = em->block_start + 
> diff;
>  525                                 split->orig_start = split->start;
>  526                         }
>  527
>  528                         ret = add_extent_mapping(em_tree, split, 
> &to_free[2],
>  529                                                  &to_free[3]);
>  530                         BUG_ON(ret);
>  531                         free_extent_map(split);
>  532                         split = NULL;
> 
> ret seems to be RAX = 0xEF == -17 == -EEXIST .
> 
> 
> david
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to