linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Duncan <1i5t5.duncan@cox.net>
To: linux-btrfs@vger.kernel.org
Subject: Re: 6TB partition, Data only 2TB - aka When you haven't hit the "usual" problem
Date: Tue, 12 Jan 2016 02:05:58 +0000 (UTC)	[thread overview]
Message-ID: <pan$e4bd0$7510e31$e1a9f49b$f50f8e00@cox.net> (raw)
In-Reply-To: 20160111223017.GE422@carfax.org.uk

Hugo Mills posted on Mon, 11 Jan 2016 22:30:17 +0000 as excerpted:

> On Mon, Jan 11, 2016 at 03:20:36PM -0700, Chris Murphy wrote:
>> On Mon, Jan 11, 2016 at 3:10 PM, Hugo Mills <hugo@carfax.org.uk> wrote:
>> >
>> > There is, as far as I can tell from some years of seeing reports of
>> > this bug, no correlation with RAID level, hardware, OS, kernel
>> > version, FS size, usage of the FS at failure, or allocation level of
>> > either data or metadata at failure.
>> >
>> > I haven't tried correlating with the phase of the moon or the
>> > losses on Lloyds Register yet.
>> 
>> Huh. So it's goofy cakes.
>> 
>> This is specifically where btrfs_free_extent produces errno -28 no
>> space left, and then the fs goes read-only?
> 
> The symptoms I'm using for a diagnosis of this bug are that the FS
> runs out of (usually data) space when there's still unallocated space
> remaining that it could use for another block group.
> 
> Forced RO isn't usually a symptom, although the FS can get into a
> state where you can't modify it (as distinct from being explicitly
> read-only).
> 
> Block-group level operations, like balance, device delete, device
> add sometimes seem to have some kind of (usually small) effect on the
> point at which the error occurs. If you hit the problem and run a
> balance, you might end up making things worse by a couple of gigabytes,
> or making things better by the same amount, or having no effect at all.

I had the problem for some kernels on my 256 MiB mixed-mode dup (so 128 
MiB capacity) /boot and its backup on my other ssd, when I'd recreate 
them to eliminate any hidden historic issues and take advantage of newer 
btrfs features, as I do all my btrfs from time to time, as an extension 
of my regular backups procedures.

My newly mkfs.btrfsed /boot or backup would NOT go read-only, but would 
ENOSPC as I attempted to copy files over from the older one -- same size 
and both btrfs so obviously the files should all fit.

The problem was obviously due to btrfs refusing to create a new chunk 
when the existing chunk (mixed-mode, so both data and metadata, at this 
size filesystem we're talking 16 MiB chunks or so) ran out of space.

The first time it happened I think I fiddled with balance, etc, maybe 
umount/remount, and eventually was able to copy the files.  I don't 
remember exactly.

The second time, I had been copying everything over in one go, and some 
of it copied while some didn't.  In particular, it was the grub2 modules 
subdir, grub/modules, that failed with some copied and some not.  So in mc 
I did a directory diff between source and destination, which selected the 
files that hadn't copied in the source.  I then tried copying them again, 
and I think a few copied before I got another ENOSPC.  At some point I 
think I fell back to trying one at a time.

Eventually they all copied.  Apparently, under some conditions a file 
copy that crosses the chunk threshold will trigger an ENOSPC instead of 
creation of another chunk, despite free space being available for 
creation of those chunks.  But by trying smaller files first, that would 
fit into the existing chunks, then trying a file that would force 
creation of a new chunk again, I eventually no longer triggered the 
failure to create chunk problem, and it created one as it should of, 
thereby allowing me to continue copying files normally.  But I'm not sure 
if it was simply chance based (maybe a race between the chunk creation 
and the attempt to copy data into it) and I tried enough times that 
eventually one succeeded, or if it was some filesystem condition that 
somehow eventually changed and let the new chunk be created, or if, 
perhaps, it was time based and the chunk creation eventually 
"registered", so files could then copy without issue.

But the last time I redid my /boot, perhaps 3.16 or 3.18 timeframe, the 
problem didn't occur at all, so I thought it must have been fixed.  Now 
I'm reading that no, it's still triggering for many.

Anyway, you can add really small (256 MiB) mixed-mode dup btrfs to the 
list of btrfs where it is known to sometimes trigger, if that combination 
wasn't on the list already.

I've not had the problem occur on my other btrfs.


One thing that occurs to me is that given that it seems to be a 
relatively straightforward failure under certain conditions to allocate a 
new chunk, the fact that btrfs post 3.17 or whatever now cleans up empty 
chunks, should in turn mean that btrfs has to create new chunks to 
accommodate new or growing files much more often, which should mean that 
people run into this issue much more frequently as well... unless there's 
some other limiting characteristic that keeps it from happening in the 
same proportion of chunk creations now, that it did back when empty 
chunks were kept around and thus fewer chunk creations were needed.


Meanwhile, this case seems to have the additional complication of forcing 
the btrfs to read-only, something that doesn't seem to occur in many case 
and certainly didn't happen in mine.  With the USB resets and etc, it 
could be considered a different bug, but it could also be that they 
simply create an environment much more likely to trigger the bug than 
normally working hardware.  If so, it could be some clue to grasp at to 
try (again) to track this thing down.


Meanwhile(2), on a personal note, I'm not particularly happy to find that 
this bug still exists, and that my last /boot remake simply didn't 
trigger it for some reason, while the previous two did.  That means I 
have to look forward to the possibility of it happening again.  And I can 
tell you from experience, it's a pretty frustrating bug, particularly 
when you're copying from a btrfs of the exact same size and 
configuration, so you KNOW the files fit!

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman


  parent reply	other threads:[~2016-01-12  2:06 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-30 21:44 6TB partition, Data only 2TB - aka When you haven't hit the "usual" problem cheater00 .
2015-12-30 22:13 ` Chris Murphy
2016-01-02  2:09   ` cheater00 .
2016-01-02  2:10     ` cheater00 .
     [not found]       ` <CA+9GZUiWQ2tAotFuq2Svkjnk+2Quz5B8UwZSSpm4SJfhqfoStQ@mail.gmail.com>
2016-01-07 21:55         ` Chris Murphy
     [not found]           ` <CA+9GZUjLcRnRX_mwO-McXWFd+G4o3jtBENMLnszg-rJTn6vL1w@mail.gmail.com>
     [not found]             ` <CAJCQCtRhYZi9nqWP_LYmZeg1yRQVkpnmUDQ-P5o1-gc-3w+Pdg@mail.gmail.com>
2016-01-09 20:00               ` cheater00 .
2016-01-09 20:26                 ` Hugo Mills
2016-01-09 20:59                   ` cheater00 .
2016-01-09 21:04                     ` Hugo Mills
2016-01-09 21:07                       ` cheater00 .
2016-01-09 21:15                         ` Hugo Mills
2016-01-10  3:59                           ` cheater00 .
2016-01-10  6:16                         ` Russell Coker
2016-01-10 22:24                           ` cheater00 .
2016-01-10 22:32                             ` Lionel Bouton
2016-01-11 13:05                         ` Austin S. Hemmelgarn
2016-01-11 13:11                           ` cheater00 .
2016-01-11 13:30                             ` cheater00 .
2016-01-11 13:45                               ` cheater00 .
2016-01-11 14:04                                 ` cheater00 .
2016-01-12  2:18                                   ` Duncan
2016-08-04 16:53                                 ` Lutz Vieweg
2016-08-04 20:30                                   ` Chris Murphy
2016-08-05 10:56                                     ` Lutz Vieweg
2016-08-05 12:12                                       ` Austin S. Hemmelgarn
2016-08-05 13:14                                         ` Lutz Vieweg
2016-08-05 20:03                                   ` Gabriel C
2016-08-25 15:48                                     ` Lutz Vieweg
2016-01-11 14:10                             ` Austin S. Hemmelgarn
2016-01-11 16:02                               ` cheater00 .
2016-01-11 16:33                                 ` cheater00 .
2016-01-11 20:29                                   ` Henk Slager
2016-01-12  1:16                                     ` Duncan
2016-01-11  0:13                       ` Chris Murphy
2016-01-11  9:03                         ` Hugo Mills
2016-01-11 13:04                           ` cheater00 .
2016-01-11 21:31                           ` Chris Murphy
2016-01-11 22:10                             ` Hugo Mills
2016-01-11 22:20                               ` Chris Murphy
2016-01-11 22:30                                 ` Hugo Mills
2016-01-11 22:39                                   ` Chris Murphy
2016-01-11 23:07                                     ` Hugo Mills
2016-01-11 23:12                                       ` cheater00 .
2016-01-11 23:05                                   ` cheater00 .
2016-01-12  2:05                                   ` Duncan [this message]
2016-01-11 22:57                             ` cheater00 .
2016-01-10 14:14                   ` Henk Slager
2016-01-10 23:47                     ` cheater00 .
2016-01-11  0:24                       ` Chris Murphy
2016-01-11  6:07                         ` cheater00 .
2016-01-11  6:24                           ` cheater00 .
2016-01-11  7:54                             ` cheater00 .
2016-01-12  0:35                               ` Duncan
2016-01-11 19:50                       ` Henk Slager
2016-01-11 23:03                         ` cheater00 .

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='pan$e4bd0$7510e31$e1a9f49b$f50f8e00@cox.net' \
    --to=1i5t5.duncan@cox.net \
    --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).