linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Quota Ignored On write
@ 2014-07-04  2:13 Kevin Brandstatter
  2014-07-04  2:21 ` Satoru Takeuchi
  0 siblings, 1 reply; 7+ messages in thread
From: Kevin Brandstatter @ 2014-07-04  2:13 UTC (permalink / raw)
  To: linux-btrfs

basing of the latest for-linus branch i found i can write way more than
the quota

btrfs quota enable
btrfs subvolume create test
btrfs qgruop limit 1G test
dd if=/dev/zero of=test/file bs=1024 count=1500000
output:
1500000+0 records in
1500000+0 records out
1536000000 bytes (1.5 GB) copied, 5.91909 s, 259 MB/s

thats a full half gig over the quota limit. I noticed some changes to
the quota
accounting in the logs, what changed that could cause this?

-Kevin Brandstatter

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

* Re: Quota Ignored On write
  2014-07-04  2:13 Quota Ignored On write Kevin Brandstatter
@ 2014-07-04  2:21 ` Satoru Takeuchi
  2014-07-04  2:25   ` Kevin Brandstatter
  2014-07-04  2:35   ` Kevin Brandstatter
  0 siblings, 2 replies; 7+ messages in thread
From: Satoru Takeuchi @ 2014-07-04  2:21 UTC (permalink / raw)
  To: Kevin Brandstatter, linux-btrfs

Hi Kevin,

(2014/07/04 11:13), Kevin Brandstatter wrote:
> basing of the latest for-linus branch i found i can write way more than
> the quota
>
> btrfs quota enable
> btrfs subvolume create test
> btrfs qgruop limit 1G test
> dd if=/dev/zero of=test/file bs=1024 count=1500000
> output:
> 1500000+0 records in
> 1500000+0 records out
> 1536000000 bytes (1.5 GB) copied, 5.91909 s, 259 MB/s
>
> thats a full half gig over the quota limit. I noticed some changes to
> the quota
> accounting in the logs, what changed that could cause this?

Do you remember what kernel version quota worked correctly?

Thanks,
Satoru

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


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

* Re: Quota Ignored On write
  2014-07-04  2:21 ` Satoru Takeuchi
@ 2014-07-04  2:25   ` Kevin Brandstatter
  2014-07-04  2:32     ` Satoru Takeuchi
  2014-07-04  2:35   ` Kevin Brandstatter
  1 sibling, 1 reply; 7+ messages in thread
From: Kevin Brandstatter @ 2014-07-04  2:25 UTC (permalink / raw)
  To: Satoru Takeuchi, linux-btrfs

3.15.3 via arch/ and from linux-git

-Kevin

On 07/03/2014 09:21 PM, Satoru Takeuchi wrote:
> Hi Kevin,
>
> (2014/07/04 11:13), Kevin Brandstatter wrote:
>> basing of the latest for-linus branch i found i can write way more than
>> the quota
>>
>> btrfs quota enable
>> btrfs subvolume create test
>> btrfs qgruop limit 1G test
>> dd if=/dev/zero of=test/file bs=1024 count=1500000
>> output:
>> 1500000+0 records in
>> 1500000+0 records out
>> 1536000000 bytes (1.5 GB) copied, 5.91909 s, 259 MB/s
>>
>> thats a full half gig over the quota limit. I noticed some changes to
>> the quota
>> accounting in the logs, what changed that could cause this?
>
> Do you remember what kernel version quota worked correctly?
>
> Thanks,
> Satoru
>
>>
>> -Kevin Brandstatter
>> -- 
>> To unsubscribe from this list: send the line "unsubscribe
>> linux-btrfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>


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

* Re: Quota Ignored On write
  2014-07-04  2:25   ` Kevin Brandstatter
@ 2014-07-04  2:32     ` Satoru Takeuchi
  2014-07-04  3:25       ` Satoru Takeuchi
  0 siblings, 1 reply; 7+ messages in thread
From: Satoru Takeuchi @ 2014-07-04  2:32 UTC (permalink / raw)
  To: Kevin Brandstatter, linux-btrfs

(2014/07/04 11:25), Kevin Brandstatter wrote:
> 3.15.3 via arch/ and from linux-git

OK, I'll bisect it.

Satoru

>
> -Kevin
>
> On 07/03/2014 09:21 PM, Satoru Takeuchi wrote:
>> Hi Kevin,
>>
>> (2014/07/04 11:13), Kevin Brandstatter wrote:
>>> basing of the latest for-linus branch i found i can write way more than
>>> the quota
>>>
>>> btrfs quota enable
>>> btrfs subvolume create test
>>> btrfs qgruop limit 1G test
>>> dd if=/dev/zero of=test/file bs=1024 count=1500000
>>> output:
>>> 1500000+0 records in
>>> 1500000+0 records out
>>> 1536000000 bytes (1.5 GB) copied, 5.91909 s, 259 MB/s
>>>
>>> thats a full half gig over the quota limit. I noticed some changes to
>>> the quota
>>> accounting in the logs, what changed that could cause this?
>>
>> Do you remember what kernel version quota worked correctly?
>>
>> Thanks,
>> Satoru
>>
>>>
>>> -Kevin Brandstatter
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe
>>> linux-btrfs" in
>>> the body of a message to majordomo@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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>


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

* Re: Quota Ignored On write
  2014-07-04  2:21 ` Satoru Takeuchi
  2014-07-04  2:25   ` Kevin Brandstatter
@ 2014-07-04  2:35   ` Kevin Brandstatter
  1 sibling, 0 replies; 7+ messages in thread
From: Kevin Brandstatter @ 2014-07-04  2:35 UTC (permalink / raw)
  To: Satoru Takeuchi, linux-btrfs

hmm, is it possible that btrfs is doing some deduplication or compression?
The expected behavior works fine with small quotas like 10/20MB
but at 1GB i can overwrite quite a bit from /dev/zero
I also tried to dd from /dev/urandom (to get some variety other than zeros)
dd if=/dev/urandom of=meow bs=1024 count=1500000
output:
dd: error writing ‘meow’: Disk quota exceeded
1163330+0 records in
1163329+0 records out
1191248896 bytes (1.2 GB) copied, 110.25 s, 10.8 MB/s

So it looks like its stopping the write, but with a 1GB quota, thats a
20% over quota

-Kevin

On 07/03/2014 09:21 PM, Satoru Takeuchi wrote:
> Hi Kevin,
>
> (2014/07/04 11:13), Kevin Brandstatter wrote:
>> basing of the latest for-linus branch i found i can write way more than
>> the quota
>>
>> btrfs quota enable
>> btrfs subvolume create test
>> btrfs qgruop limit 1G test
>> dd if=/dev/zero of=test/file bs=1024 count=1500000
>> output:
>> 1500000+0 records in
>> 1500000+0 records out
>> 1536000000 bytes (1.5 GB) copied, 5.91909 s, 259 MB/s
>>
>> thats a full half gig over the quota limit. I noticed some changes to
>> the quota
>> accounting in the logs, what changed that could cause this?
>
> Do you remember what kernel version quota worked correctly?
>
> Thanks,
> Satoru
>
>>
>> -Kevin Brandstatter
>> -- 
>> To unsubscribe from this list: send the line "unsubscribe
>> linux-btrfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>


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

* Re: Quota Ignored On write
  2014-07-04  2:32     ` Satoru Takeuchi
@ 2014-07-04  3:25       ` Satoru Takeuchi
  2014-07-04  5:16         ` Satoru Takeuchi
  0 siblings, 1 reply; 7+ messages in thread
From: Satoru Takeuchi @ 2014-07-04  3:25 UTC (permalink / raw)
  To: Kevin Brandstatter, linux-btrfs, Chris Mason

Hi Chris and Kevin,

>> On 07/03/2014 09:21 PM, Satoru Takeuchi wrote:
>>> Hi Kevin,
>>>
>>> (2014/07/04 11:13), Kevin Brandstatter wrote:
>>>> basing of the latest for-linus branch i found i can write way more than
>>>> the quota
>>>>
>>>> btrfs quota enable
>>>> btrfs subvolume create test
>>>> btrfs qgruop limit 1G test
>>>> dd if=/dev/zero of=test/file bs=1024 count=1500000
>>>> output:
>>>> 1500000+0 records in
>>>> 1500000+0 records out
>>>> 1536000000 bytes (1.5 GB) copied, 5.91909 s, 259 MB/s
>>>>
>>>> thats a full half gig over the quota limit. I noticed some changes to
>>>> the quota
>>>> accounting in the logs, what changed that could cause this?
>>>
>>> Do you remember what kernel version quota worked correctly?
(2014/07/04 11:32), Satoru Takeuchi wrote:
> (2014/07/04 11:25), Kevin Brandstatter wrote:
>> 3.15.3 via arch/ and from linux-git
>
> OK, I'll bisect it.

I made the following reproducer based on your operation.
It succeeded with 3.15 and failed with 3.16-rc3. So, the problematic
patch is not in mason/for-linux branch, but in somewhere between
3.15 and 3.16-rc3. Please wait for a while to finish my bisect...

===============================================================================
#!/bin/bash -x

TEST_DEV=/dev/vdb
TEST_MNT=/home/sat/mnt

umount $TEST_MNT
mkfs.btrfs -f $TEST_DEV
mount $TEST_DEV $TEST_MNT
btrfs quota enable $TEST_MNT

SUBVOLPATH=$TEST_MNT/quota_test
LIMIT=$((1024*1000000))
btrfs subvolume create $SUBVOLPATH
btrfs qgroup limit $LIMIT $SUBVOLPATH
TESTFILE=$SUBVOLPATH/test
dd if=/dev/zero of=$TESTFILE bs=1024 count=$(($LIMIT*3/2/1024))
SIZE=$(($(ls -s $TESTFILE | awk '{print $1}')*1024))

RET=0
if [ $SIZE -le $LIMIT ] ; then
   echo "[PASS] quota works correctly" >&2
else
   echo "[FAIL] quota doesn't work" >&2
   RET=1
fi

exit $RET
===============================================================================

Thanks,
Satoru

>>>
>>> Thanks,
>>> Satoru
>>>
>>>>
>>>> -Kevin Brandstatter
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe
>>>> linux-btrfs" in
>>>> the body of a message to majordomo@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 majordomo@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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

* Re: Quota Ignored On write
  2014-07-04  3:25       ` Satoru Takeuchi
@ 2014-07-04  5:16         ` Satoru Takeuchi
  0 siblings, 0 replies; 7+ messages in thread
From: Satoru Takeuchi @ 2014-07-04  5:16 UTC (permalink / raw)
  To: Kevin Brandstatter, linux-btrfs, Chris Mason, Josef Bacik

Hi Josef, Chris, Kevin,

(2014/07/04 12:25), Satoru Takeuchi wrote:
> Hi Chris and Kevin,
>
>>> On 07/03/2014 09:21 PM, Satoru Takeuchi wrote:
>>>> Hi Kevin,
>>>>
>>>> (2014/07/04 11:13), Kevin Brandstatter wrote:
>>>>> basing of the latest for-linus branch i found i can write way more than
>>>>> the quota
>>>>>
>>>>> btrfs quota enable
>>>>> btrfs subvolume create test
>>>>> btrfs qgruop limit 1G test
>>>>> dd if=/dev/zero of=test/file bs=1024 count=1500000
>>>>> output:
>>>>> 1500000+0 records in
>>>>> 1500000+0 records out
>>>>> 1536000000 bytes (1.5 GB) copied, 5.91909 s, 259 MB/s
>>>>>
>>>>> thats a full half gig over the quota limit. I noticed some changes to
>>>>> the quota
>>>>> accounting in the logs, what changed that could cause this?
>>>>
>>>> Do you remember what kernel version quota worked correctly?
> (2014/07/04 11:32), Satoru Takeuchi wrote:
>> (2014/07/04 11:25), Kevin Brandstatter wrote:
>>> 3.15.3 via arch/ and from linux-git
>>
>> OK, I'll bisect it.
>
> I made the following reproducer based on your operation.
> It succeeded with 3.15 and failed with 3.16-rc3. So, the problematic
> patch is not in mason/for-linux branch, but in somewhere between
> 3.15 and 3.16-rc3. Please wait for a while to finish my bisect...

I bisected and found the bad commit is the following patch.

===============================================================================
commit fcebe4562dec83b3f8d3088d77584727b09130b2
Author: Josef Bacik <jbacik@fb.com>
Date:   Tue May 13 17:30:47 2014 -0700

     Btrfs: rework qgroup accounting
===============================================================================

Josef, please take a look at this patch.

Thanks,
Satoru

>
> ===============================================================================
> #!/bin/bash -x
>
> TEST_DEV=/dev/vdb
> TEST_MNT=/home/sat/mnt
>
> umount $TEST_MNT
> mkfs.btrfs -f $TEST_DEV
> mount $TEST_DEV $TEST_MNT
> btrfs quota enable $TEST_MNT
>
> SUBVOLPATH=$TEST_MNT/quota_test
> LIMIT=$((1024*1000000))
> btrfs subvolume create $SUBVOLPATH
> btrfs qgroup limit $LIMIT $SUBVOLPATH
> TESTFILE=$SUBVOLPATH/test
> dd if=/dev/zero of=$TESTFILE bs=1024 count=$(($LIMIT*3/2/1024))
> SIZE=$(($(ls -s $TESTFILE | awk '{print $1}')*1024))
>
> RET=0
> if [ $SIZE -le $LIMIT ] ; then
>    echo "[PASS] quota works correctly" >&2
> else
>    echo "[FAIL] quota doesn't work" >&2
>    RET=1
> fi
>
> exit $RET
> ===============================================================================
>
> Thanks,
> Satoru
>
>>>>
>>>> Thanks,
>>>> Satoru
>>>>
>>>>>
>>>>> -Kevin Brandstatter
>>>>> --
>>>>> To unsubscribe from this list: send the line "unsubscribe
>>>>> linux-btrfs" in
>>>>> the body of a message to majordomo@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 majordomo@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 majordomo@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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

end of thread, other threads:[~2014-07-04  5:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-04  2:13 Quota Ignored On write Kevin Brandstatter
2014-07-04  2:21 ` Satoru Takeuchi
2014-07-04  2:25   ` Kevin Brandstatter
2014-07-04  2:32     ` Satoru Takeuchi
2014-07-04  3:25       ` Satoru Takeuchi
2014-07-04  5:16         ` Satoru Takeuchi
2014-07-04  2:35   ` Kevin Brandstatter

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