linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans van Kranenburg <hans.van.kranenburg@mendix.com>
To: dsterba@suse.cz, linux-btrfs@vger.kernel.org
Subject: Re: btrfstune -x -> extent-tree.c:2688: btrfs_reserve_extent: Assertion `ret` failed.
Date: Mon, 12 Sep 2016 14:46:37 +0200	[thread overview]
Message-ID: <a6c78673-935e-7774-e2f8-f6f80130d5f5@mendix.com> (raw)
In-Reply-To: <20160912123946.GC16983@twin.jikos.cz>

On 09/12/2016 02:39 PM, David Sterba wrote:
> On Fri, Sep 09, 2016 at 11:37:21PM +0200, Hans van Kranenburg wrote:
>> Hi,
>>
>> While trying to enable skinny metadata on a filesystem, I got this error
>> (after minutes of reading from disk by the program):
>>
>> -# btrfstune -x /dev/xvdb
>> extent-tree.c:2688: btrfs_reserve_extent: Assertion `ret` failed.
>> btrfstune[0x410ef6]
>> btrfstune[0x410f1d]
>> btrfstune(btrfs_reserve_extent+0x781)[0x41522e]
>> btrfstune(btrfs_alloc_free_block+0x63)[0x415413]
>> btrfstune(__btrfs_cow_block+0xfc)[0x409176]
>> btrfstune(btrfs_cow_block+0x8b)[0x409718]
>> btrfstune[0x40d8ad]
>> btrfstune(btrfs_commit_transaction+0xb8)[0x40f10d]
>> btrfstune(main+0x3b3)[0x407e31]
>> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f945fa06700]
>> btrfstune(_start+0x29)[0x408509]
>>
>> This is a ~40TiB filesystem that was created about one and a half year
>> ago, has grown from 1TiB to this size now and has always been running
>> with the Debian 3.16-ckt kernel.
>>
>> # uname -a
>> Linux backups-dolly 4.7.0-1-amd64 #1 SMP Debian 4.7.2-1 (2016-08-28)
>> x86_64 GNU/Linux
>>
>> # btrfs version
>> btrfs-progs v4.7.1
>>
>> One of the things I already did earlier today was switching to
>> space_cache=v2
>>
>> Does the shown error ring a bell? What's the next step to debug this?
> 
> It's a bug in the incompat bit handling the free-space-tree. Opening the
> filesystem for read-write should not be allowed, but was mistakenly
> enabled by me.
> 
>> The filesystem is a clone of the production filesystem (not btrfs clone,
>> but lower level, on iSCSI storage) meant to be used for upgrade-testing
>> and performance testing, so if anything goes wrong in whatever way,
>> there will be no panicing involved.
> 
> The fix is in devel, but it'd mean that writing to a v2-enabled
> filesystem will not work (which also means changing some fatures via
> btrfstune as it uses the transaction mechanism that needs to cow blocks
> and update free space etc).

As I replied this morning, I tried it again on a fresh clone of the
underlying snapshot, before doing anything else first with it.

So that means at that point it's a filesystem that has only seen 3.16
kernels before, and does still have old free space cache in place, no v2
tree.

And, it still blows up.

-- 
Hans van Kranenburg

  reply	other threads:[~2016-09-12 12:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-09 21:37 btrfstune -x -> extent-tree.c:2688: btrfs_reserve_extent: Assertion `ret` failed Hans van Kranenburg
2016-09-12  9:14 ` Hans van Kranenburg
2016-09-12 12:39 ` David Sterba
2016-09-12 12:46   ` Hans van Kranenburg [this message]
2016-09-12 21:29     ` Hans van Kranenburg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a6c78673-935e-7774-e2f8-f6f80130d5f5@mendix.com \
    --to=hans.van.kranenburg@mendix.com \
    --cc=dsterba@suse.cz \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).