2019-09-04 08:04:29

by Hongzhi, Song

[permalink] [raw]
Subject: Bug?: unlink cause btrfs error but other fs don't

Hi ,


*Kernel:*

    After v5.2-rc1, qemux86-64

    make -j40 ARCH=x86_64 CROSS_COMPILE=x86-64-gcc
    use qemu to bootup kernel


*Reproduce:*

    There is a test case failed on btrfs but success on other
fs(ext4,ext3), see attachment.


    Download attachments:

        gcc test.c -o myout -Wall -lpthread

        copy myout and run.sh to your qemu same directory.

        on qemu:

            ./run.sh


    I found the block device size with btrfs set 512M will cause the error.
    256M and 1G all success.


*Error info:*

    "BTRFS warning (device loop0): could not allocate space for a
delete; will truncate on mount"


*Related patch:*

    I use git bisect to find the following patch introduces the issue.

    commit c8eaeac7b734347c3afba7008b7af62f37b9c140
    Author: Josef Bacik <[email protected]>
    Date:   Wed Apr 10 15:56:10 2019 -0400

        btrfs: reserve delalloc metadata differently
        ...


Anyone's reply will be appreciated.

--Hongzhi


Attachments:
run.sh (604.00 B)
test.c (4.02 kB)
Download all attachments

2019-09-04 08:44:02

by Hongzhi, Song

[permalink] [raw]
Subject: Re: Bug?: unlink cause btrfs error but other fs don't

Hi Nikolay,

>

There were multiple fixes from Josef recently improving btrfs enospc
handling with tiny filesystems (which is generally not the targeted use
case of btrfs). The code lives in
https://github.com/kdave/btrfs-devel/commits/misc-next should you want
to test it. Otherwise re-test after next merge windows when those
patches are supposed to be merged for 5.4

>


Thank for your reply, I will keep eyes on the branch.

ps: this email is my simply testcase from ltp


--Hongzhi


On 9/4/19 4:02 PM, Hongzhi, Song wrote:
> Hi ,
>
>
> *Kernel:*
>
>     After v5.2-rc1, qemux86-64
>
>     make -j40 ARCH=x86_64 CROSS_COMPILE=x86-64-gcc
>     use qemu to bootup kernel
>
>
> *Reproduce:*
>
>     There is a test case failed on btrfs but success on other
> fs(ext4,ext3), see attachment.
>
>
>     Download attachments:
>
>         gcc test.c -o myout -Wall -lpthread
>
>         copy myout and run.sh to your qemu same directory.
>
>         on qemu:
>
>             ./run.sh
>
>
>     I found the block device size with btrfs set 512M will cause the
> error.
>     256M and 1G all success.
>
>
> *Error info:*
>
>     "BTRFS warning (device loop0): could not allocate space for a
> delete; will truncate on mount"
>
>
> *Related patch:*
>
>     I use git bisect to find the following patch introduces the issue.
>
>     commit c8eaeac7b734347c3afba7008b7af62f37b9c140
>     Author: Josef Bacik <[email protected]>
>     Date:   Wed Apr 10 15:56:10 2019 -0400
>
>         btrfs: reserve delalloc metadata differently
>         ...
>
>
> Anyone's reply will be appreciated.
>
> --Hongzhi
>

2019-09-04 10:51:33

by Josef Bacik

[permalink] [raw]
Subject: Re: Bug?: unlink cause btrfs error but other fs don't

On Wed, Sep 04, 2019 at 04:02:24PM +0800, Hongzhi, Song wrote:
> Hi ,
>
>
> *Kernel:*
>
> ??? After v5.2-rc1, qemux86-64
>
> ??? make -j40 ARCH=x86_64 CROSS_COMPILE=x86-64-gcc
> ??? use qemu to bootup kernel
>
>
> *Reproduce:*
>
> ??? There is a test case failed on btrfs but success on other fs(ext4,ext3),
> see attachment.
>
>
> ??? Download attachments:
>
> ??? ??? gcc test.c -o myout -Wall -lpthread
>
> ??? ??? copy myout and run.sh to your qemu same directory.
>
> ??? ??? on qemu:
>
> ??? ??? ??? ./run.sh
>
>
> ??? I found the block device size with btrfs set 512M will cause the error.
> ??? 256M and 1G all success.
>
>
> *Error info:*
>
> ??? "BTRFS warning (device loop0): could not allocate space for a delete;
> will truncate on mount"
>
>
> *Related patch:*
>
> ??? I use git bisect to find the following patch introduces the issue.
>
> ??? commit c8eaeac7b734347c3afba7008b7af62f37b9c140
> ??? Author: Josef Bacik <[email protected]>
> ??? Date:?? Wed Apr 10 15:56:10 2019 -0400
>
> ??????? btrfs: reserve delalloc metadata differently
> ??????? ...
>
>

I meant to reply to this but couldn't find the original thread. The patches I
wrote for this merge window were to address this issue. Thanks,

Josef

2019-09-05 01:41:53

by Hongzhi, Song

[permalink] [raw]
Subject: Re: Bug?: unlink cause btrfs error but other fs don't


On 9/4/19 6:48 PM, Josef Bacik wrote:
> On Wed, Sep 04, 2019 at 04:02:24PM +0800, Hongzhi, Song wrote:
>> Hi ,
>>
>>
>> *Kernel:*
>>
>>     After v5.2-rc1, qemux86-64
>>
>>     make -j40 ARCH=x86_64 CROSS_COMPILE=x86-64-gcc
>>     use qemu to bootup kernel
>>
>>
>> *Reproduce:*
>>
>>     There is a test case failed on btrfs but success on other fs(ext4,ext3),
>> see attachment.
>>
>>
>>     Download attachments:
>>
>>         gcc test.c -o myout -Wall -lpthread
>>
>>         copy myout and run.sh to your qemu same directory.
>>
>>         on qemu:
>>
>>             ./run.sh
>>
>>
>>     I found the block device size with btrfs set 512M will cause the error.
>>     256M and 1G all success.
>>
>>
>> *Error info:*
>>
>>     "BTRFS warning (device loop0): could not allocate space for a delete;
>> will truncate on mount"
>>
>>
>> *Related patch:*
>>
>>     I use git bisect to find the following patch introduces the issue.
>>
>>     commit c8eaeac7b734347c3afba7008b7af62f37b9c140
>>     Author: Josef Bacik <[email protected]>
>>     Date:   Wed Apr 10 15:56:10 2019 -0400
>>
>>         btrfs: reserve delalloc metadata differently
>>         ...
>>
>>
> I meant to reply to this but couldn't find the original thread. The patches I
> wrote for this merge window were to address this issue. Thanks,
>
> Josef


Ok, thank your, I will try to search them.

--Hongzhi


>