Re: report, kernel BUG at fs/btrfs/extent-tree.c:3106

Alexander Beregalov
2009-02-09T14:51:34Z

2009/2/2 Yoshihiro Takahashi <ytakahashi@miraclelinux.com>:
> Hi, Josef
>
> On Fri, 30 Jan 2009 08:49:35 -0500 Josef Bacik <jbacik@redhat.com> wrote:
>> On Fri, Jan 30, 2009 at 02:35:28PM +0900, Yoshihiro Takahashi wrote:
>> > Hi.
>> >
>> > I create many files on btrfs of 16GB partition.
>> > may 13,000,000 files.
>> > I get this report.
>> >
>> > I think about the following fix.
>> > When there is not space, return of ENOSPC.
>> > Or add lock in free extents.
>> >
>>
>> Are you just creating files, or are you doing something else? Thanks,
>>
>> Josef
>> --
>
> I made a lot of files.
> Perhaps surpass 13,000,000 file.
>
> I created directry first.
> I get this BUG when I made the file afterwards.
>
> I got the following report to count of the files when I performed find.

Hi

I have reproduced similar problem on linux-next.
I run `stress -c 4 -d 8` on btrfs.

But it looks like ENOSPC-problem, doesn't it?

btrfs allocation failed flags 1, wanted 4096
space_info has 0 free, is full
block group 12582912 has 8388608 bytes, 8388608 used 0 pinned 0 reserved
0 blocks of free space at or bigger than bytes is
block group 229638144 has 400556032 bytes, 400556032 used 0 pinned 0 reserved
0 blocks of free space at or bigger than bytes is
block group 630194176 has 400556032 bytes, 400556032 used 0 pinned 0 reserved
0 blocks of free space at or bigger than bytes is
block group 1030750208 has 400556032 bytes, 399540224 used 0 pinned
1015808 reserved
0 blocks of free space at or bigger than bytes is
block group 1431306240 has 400556032 bytes, 400547840 used 0 pinned
8192 reserved
0 blocks of free space at or bigger than bytes is
block group 1831862272 has 400556032 bytes, 400547840 used 0 pinned
8192 reserved
0 blocks of free space at or bigger than bytes is
block group 2232418304 has 400556032 bytes, 399519744 used 0 pinned
1036288 reserved
0 blocks of free space at or bigger than bytes is
block group 2632974336 has 400556032 bytes, 400547840 used 0 pinned
8192 reserved
0 blocks of free space at or bigger than bytes is
block group 3233808384 has 362872832 bytes, 178257920 used 0 pinned
184614912 reserved
0 blocks of free space at or bigger than bytes is
------------[ cut here ]------------
kernel BUG at fs/btrfs/extent-tree.c:3176!
invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
last sysfs file: /sys/kernel/uevent_seqnum
CPU 0
Modules linked in:
Pid: 2235, comm: stress Not tainted 2.6.29-rc4-next-20090209 #3 PowerEdge 1950
RIP: 0010:[<ffffffff8041366d>] [<ffffffff8041366d>]
__btrfs_reserve_extent+0x28d/0x330
..
Call Trace:
[<ffffffff80413746>] btrfs_reserve_extent+0x36/0x60
[<ffffffff8042882b>] cow_file_range+0x16b/0x380
[<ffffffff80438576>] ? free_extent_state+0x46/0x70
[<ffffffff80429470>] run_delalloc_range+0x350/0x360
[<ffffffff8043b049>] ? test_range_bit+0xb9/0x180
[<ffffffff8043b8e8>] ? find_lock_delalloc_range+0x108/0x190
[<ffffffff8043baa3>] __extent_writepage+0x133/0x890
[<ffffffff80235ad9>] ? sub_preempt_count+0xa9/0xf0
[<ffffffff8062d32d>] ? schedule+0x1d/0x40
[<ffffffff8029c3bf>] ? clear_page_dirty_for_io+0xdf/0xf0
[<ffffffff80439887>] extent_write_cache_pages+0x1c7/0x390
[<ffffffff804388b0>] ? flush_write_bio+0x0/0x30
[<ffffffff8043b970>] ? __extent_writepage+0x0/0x890
[<ffffffff80282054>] ? __rcu_read_unlock+0xa4/0xc0
[<ffffffff80439a8d>] extent_writepages+0x3d/0x60
[<ffffffff80426050>] ? btrfs_get_extent+0x0/0x950
[<ffffffff80422fe3>] btrfs_writepages+0x23/0x30
[<ffffffff8029cbdb>] do_writepages+0x2b/0x50
[<ffffffff802e5aa1>] __writeback_single_inode+0xa1/0x3f0
[<ffffffff802e62e2>] ? generic_sync_sb_inodes+0x3a2/0x420
[<ffffffff802e6288>] generic_sync_sb_inodes+0x348/0x420
[<ffffffff802e6545>] writeback_inodes+0x65/0x100
[<ffffffff8029d798>] balance_dirty_pages_ratelimited_nr+0x278/0x3f0