Mordechay Kaganer posted on Fri, 29 Jul 2016 16:37:05 +0300 as excerpted:

> While saving a backup (using rsync) the FS went read only and i've got
> BTRFS: Transaction aborted (error -28) error. While writing a new backup
> i was also doing btrfs send of another subvolume on the same FS from
> this server out to another server.
> 
> After reboot, the device mounts OK. Does it mean something went wrong
> with the FS? Need to run a full balance?

Because btrfs is designed to be copy-on-write, with atomic transactions, 
an aborted transaction /should/ leave you with a consistent filesystem, 
simply lacking whatever changes would have occurred in that transaction.

Of course the fact that the transaction aborted /does/ indicate some sort 
of problem, which may in fact have left the filesystem in an unknown 
state.  However, I'd recommend a couple other checks, not balance, to be 
sure you're good.  First, a btrfs scrub of the filesystem, just to be 
sure the checksums all come out fine (or are fixable and fixed if not).  
Second, a btrfs check, which will be read-only unless you add --repair or 
similar option.

If those both come out fine it was probably simply stress from the rsync 
and the send at the same time.  Rsync in particular is known to be 
intensive enough to be a reasonable real-world stress test for btrfs, and 
has in fact flushed out a number of bugs over the years that people 
didn't see in otherwise normal usage.  Combining it with send of course 
amplifies the stress on the filesystem, such that if bugs are going to 
show up, and btrfs isn't yet fully stable and mature so that's expected, 
combining rsync with pretty much anything else intensive as well is 
likely to flush them out.

> btrfs-tools version: btrfs-progs v4.3.1
> 
> The kernel is based on Ubuntu mainline PPA 4.3.3
> (http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.3.3-wily/) with a
> patch to fix RAID10 issue.

FWIW, kernel 4.3 is no longer really recommended or supported well on 
this list.  The list recommendation is the last two kernels series in 
either the LTS or current channels.  The last two upstream LTS series are 
4.4 and 4.1.  The latest current kernel is of course 4.7, so 4.7 and 4.6 
would be supported there.

Of course distros can and do choose other kernel series to support, and 
you may choose to go with them and their support instead, but if so, you 
really should be getting support from them, because they are tracking 
what patches they've backported, while this list is generally focused on 
mainline and won't know what distros have backported, and because the 
focus is on moving forward, we only generally support the two current 
kernel series, plus the two current LTS series for those who don't want 
to be upgrading to a new kernel series every couple months.

During normal operation, userspace (btrfs-progs) is less important as 
most commands simply call the kernel code to do the real work.  However, 
once something goes wrong and you're trying to recover, it's mostly 
userspace code, and the newer versions are better positioned to fix more 
problems, so they're recommended then.  Plus, as the commands and their 
output are still changing from time to time, get too old and the commands 
and output are different enough it's hard to compare.  So a good rule of 
thumb is to at least match your kernel x.y version, tho newer is fine.  
That way, provided you're following the kernel recommendations, you're 
assured of a reasonably current btrfs userland as well.

So I'd recommend upgrading to the latest kernel 4.4 if you want to stay 
with the stable series, or 4.6 or 4.7 if you want current, and then (less 
important) upgrading the btrfs userspace as well.  It's possible the 
newer kernel will handle the combined rsync and send stresses better, and 
if not, you're on a better base to provide bug reports, etc.

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

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

Reply via email to