I'm referring to the link below. Using "btrfs subvolume snapshot -r"
copies the Received UUID from the source into the new snapshot. The
btrbk FAQ entry suggests otherwise. Has something changed?

The only way I see to remove a Received UUID is to create a rw
snapshot (above command without the "-r"), which is not ideal in this
situation when cleaning up readonly source snapshots.

Any suggestions? Thanks

On Thu, Sep 7, 2017 at 10:33 AM, Axel Burri <a...@tty0.ch> wrote:
>
> Having a received_uuid set on the source volume ("/home" in your case)
> is indeed a bad thing when it comes to send/receive. You probably
> restored a backup with send/receive, and made it read/write using "btrfs
> property set -ts /home ro false". This is a an evil thing, as it leaves
> received_uuid intact. In order to make a subvolume read-write, I
> recommend to use "btrfs subvolume snapshot <ro-subvol> <rw-subvol>".
>
> There is a FAQ entry on btrbk on how to fix this:
>
> https://github.com/digint/btrbk/blob/master/doc/FAQ.md#im-getting-an-error-aborted-received-uuid-is-set
>
>
> On 2017-09-07 15:34, Dave wrote:
> > I just ran a test. The btrfs send - receive problem I described is
> > indeed fully resolved by removing the "problematic" snapshot on the
> > target device. I did not make any changes to the source volume. I did
> > not make any other changes in my steps (see earlier message for my
> > exact steps).
> >
> > Therefore, the problem I described in my earlier message is not due
> > exclusively to having a Received UUID on the source volume (or to any
> > other feature of the source volume). It is not related to any feature
> > of the directly specified parent volume either. More details are
> > included in my earlier email.
> >
> > Thanks for any further feedback, including answers to my questions and
> > comments about whether this is a known issue.
> >
> >
> > On Thu, Sep 7, 2017 at 8:39 AM, Dave <davestechs...@gmail.com> wrote:
> >>
> >> Hello. Can anyone further explain this issue ("you have a Received UUID on 
> >> the source volume")?
> >>
> >> How does it happen?
> >> How does one remove a Received UUID from the source volume?
> >>
> >> And how does that explain my results where I showed that the problem
> >> is not dependent upon the source volume but is instead dependent upon
> >> some existing snapshot on the target volume?
> >>
> >> My results do not appear to be fully explained by a Received UUID on the 
> >> source volume, as my prior message hopefully shows clearly.
> >>
> >> Thank you.
> >>
> >> On Thu, Sep 7, 2017 at 2:24 AM, A L <crimsoncott...@gmail.com> wrote:
> >>> The problem can be that you have a Received UUID on the source volume. 
> >>> This breaks send-receive.
> >>>
> >>> ---- From: Dave <davestechs...@gmail.com> -- Sent: 2017-09-07 - 06:43 ----
> >>>
> >>>> Here is more info and a possible (shocking) explanation. This
> >>>> aggregates my prior messages and it provides an almost complete set of
> >>>> steps to reproduce this problem.
> >>>>
> >>>> Linux srv 4.9.41-1-lts #1 SMP Mon Aug 7 17:32:35 CEST 2017 x86_64 
> >>>> GNU/Linux
> >>>> btrfs-progs v4.12
> >>>>
> >>>> My steps:
> >>>>
> >>>> [root@srv]# sync
> >>>> [root@srv]# mkdir /home/.snapshots/test1
> >>>> [root@srv]# btrfs su sn -r /home/ /home/.snapshots/test1/
> >>>> Create a readonly snapshot of '/home/' in '/home/.snapshots/test1//home'
> >>>> [root@srv]# sync
> >>>> [root@srv]# mkdir /mnt/x5a/home/test1
> >>>> [root@srv]# btrfs send /home/.snapshots/test1/home/ | btrfs receive
> >>>> /mnt/x5a/home/test1/
> >>>> At subvol /home/.snapshots/test1/home/
> >>>> At subvol home
> >>>> [root@srv]# ls -la /mnt/x5a/home/test1/home/user1/
> >>>> NOTE: all recent files are present
> >>>> [root@srv]# ls -la /mnt/x5a/home/test1/home/user2/Documents/
> >>>> NOTE: all recent files are present
> >>>> [root@srv]# mkdir /home/.snapshots/test2
> >>>> [root@srv]# mkdir /mnt/x5a/home/test2
> >>>> [root@srv]# btrfs su sn -r /home/ /home/.snapshots/test2/
> >>>> Create a readonly snapshot of '/home/' in '/home/.snapshots/test2//home'
> >>>> [root@srv]# sync
> >>>> [root@srv]# btrfs send -p /home/.snapshots/test1/home/
> >>>> /home/.snapshots/test2/home/ | btrfs receive /mnt/x5a/home/test2/
> >>>> At subvol /home/.snapshots/test2/home/
> >>>> At snapshot home
> >>>> [root@srv]# ls -la /mnt/x5a/home/test2/home/user1/
> >>>> NOTE: all recent files are MISSING
> >>>> [root@srv]# ls -la /mnt/x5a/home/test2/home/user2/Documents/
> >>>> NOTE: all recent files are MISSING
> >>>>
> >>>> Below I am including some rsync output to illustrate when a snapshot
> >>>> is missing files (or not):
> >>>>
> >>>> [root@srv]# rsync -aniv /home/.snapshots/test1/home/
> >>>> /home/.snapshots/test2/home/
> >>>> sending incremental file list
> >>>>
> >>>> sent 1,143,286 bytes  received 1,123 bytes  762,939.33 bytes/sec
> >>>> total size is 3,642,972,271  speedup is 3,183.28 (DRY RUN)
> >>>>
> >>>> This indicates that these two subvolumes contain the same files, which
> >>>> they should because test2 is a snapshot of test1 without any changes
> >>>> to files, and it was not sent to another physical device.
> >>>>
> >>>> The problem is when test2 is sent to another device as shown by the
> >>>> rsync results below.
> >>>>
> >>>> [root@srv]# rsync -aniv /home/.snapshots/test2/home/ 
> >>>> /mnt/x5a/home/test2/home/
> >>>> sending incremental file list
> >>>> .d..t...... ./
> >>>> .d..t...... user1/
> >>>>> f.st...... user1/.bash_history
> >>>>> f.st...... user1/.bashrc
> >>>>> f+++++++++ user1/test2017-09-06.txt
> >>>> ...
> >>>> and a long list of other missing files
> >>>>
> >>>> The incrementally sent snapshot at /mnt/x5a/home/test2/home/ is
> >>>> missing all recent files (any files from the month of August or
> >>>> September), as my prior visual inspections had indicated. The same
> >>>> files are missing every time. There is no randomness to the missing
> >>>> data.
> >>>>
> >>>> The problem does not happen for me if the receive command target is
> >>>> located on the same physical device as shown next. (However, I suspect
> >>>> there's more to it than that, as explained further below.)
> >>>>
> >>>> [root@srv]# mkdir /home/.snapshots/test2rec
> >>>> [root@srv]# btrfs send -p /home/.snapshots/test1/home/
> >>>> /home/.snapshots/test2/home/ | btrfs receive
> >>>> /home/.snapshots/test2rec/
> >>>> At subvol /home/.snapshots/test2/home/
> >>>>
> >>>> # rsync -aniv /home/.snapshots/test2/home/ 
> >>>> /home/.snapshots/test2rec/home/
> >>>> sending incremental file list
> >>>>
> >>>> sent 1,143,286 bytes  received 1,123 bytes  2,288,818.00 bytes/sec
> >>>> total size is 3,642,972,271  speedup is 3,183.28 (DRY RUN)
> >>>>
> >>>> The above (as well as visual inspection of files) indicates that these
> >>>> two subvolumes contain the same files, which was not the case when the
> >>>> same command had a target located on another physical device. Of
> >>>> course, a snapshot which resides on the same physical device is not a
> >>>> very good backup. So I do need to send it to another device, but that
> >>>> results in missing files when the -p or -c options are used with btrfs
> >>>> send. (Non-incremental sending to another physical device does work.)
> >>>>
> >>>> I can think of a couple possible explanations.
> >>>>
> >>>> One is that there is a problem when using the -p or -c options with
> >>>> btrfs send when the target is another physical device. I suspect this
> >>>> is the actual explanation, however.
> >>>>
> >>>> A second possibility is that the presence of prior existing snapshots
> >>>> at the target location (even if old and not referenced in any current
> >>>> btrfs command), can determine the outcome and final contents of an
> >>>> incremental send operation. I believe the info below suggests this to
> >>>> be the case.
> >>>>
> >>>> [root@srv]# btrfs su show /home/.snapshots/test2/home/
> >>>> test2/home
> >>>>         Name:                   home
> >>>>         UUID:                   292e8bbf-a95f-2a4e-8280-129202d389dc
> >>>>         Parent UUID:            62418df6-a1f8-d74a-a152-11f519593053
> >>>>         Received UUID:          e00d5318-6efd-824e-ac91-f25efa5c2a74
> >>>>         Creation time:          2017-09-06 15:38:16 -0400
> >>>>         Subvolume ID:           2000
> >>>>         Generation:             5020
> >>>>         Gen at creation:        5020
> >>>>         Parent ID:              257
> >>>>         Top level ID:           257
> >>>>         Flags:                  readonly
> >>>>         Snapshot(s):
> >>>>
> >>>> [root@srv]# btrfs su show /mnt/x5a/home/test1/home
> >>>> home/test1/home
> >>>>         Name:                   home
> >>>>         UUID:                   dc00b13d-f841-cf48-a169-aa61429a5679
> >>>>         Parent UUID:            -
> >>>>         Received UUID:          e00d5318-6efd-824e-ac91-f25efa5c2a74
> >>>>         Creation time:          2017-09-06 15:33:45 -0400
> >>>>         Subvolume ID:           656
> >>>>         Generation:             777
> >>>>         Gen at creation:        773
> >>>>         Parent ID:              257
> >>>>         Top level ID:           257
> >>>>         Flags:                  readonly
> >>>>         Snapshot(s):
> >>>>
> >>>> [root@srv]# btrfs su show /mnt/x5a/home/test2/home/
> >>>> home/test2/home
> >>>>         Name:                   home
> >>>>         UUID:                   b01ab63f-17a1-f442-b9d4-ed12a0d057ea
> >>>>         Parent UUID:            8bf40f97-10e0-9f47-a281-1a0b21bbbad0
> >>>>         Received UUID:          e00d5318-6efd-824e-ac91-f25efa5c2a74
> >>>>         Creation time:          2017-09-06 15:39:51 -0400
> >>>>         Subvolume ID:           660
> >>>>         Generation:             779
> >>>>         Gen at creation:        779
> >>>>         Parent ID:              257
> >>>>         Top level ID:           257
> >>>>         Flags:                  readonly
> >>>>         Snapshot(s):
> >>>>
> >>>> [root@srv]# btrfs su show /home/.snapshots/test2rec/home/
> >>>> test2rec/home
> >>>>         Name:                   home
> >>>>         UUID:                   bde1891d-1474-414f-b6ab-2a34c5af224e
> >>>>         Parent UUID:            62418df6-a1f8-d74a-a152-11f519593053
> >>>>         Received UUID:          e00d5318-6efd-824e-ac91-f25efa5c2a74
> >>>>         Creation time:          2017-09-06 17:36:19 -0400
> >>>>         Subvolume ID:           2003
> >>>>         Generation:             5027
> >>>>         Gen at creation:        5027
> >>>>         Parent ID:              257
> >>>>         Top level ID:           257
> >>>>         Flags:                  readonly
> >>>>         Snapshot(s):
> >>>>
> >>>> Below, we have old almost forgotten snapshot (date 2017-07-21) on
> >>>> device /mnt/x5a/home with a Received UUID that matches the Received
> >>>> UUID of test snapshots that were newly created today. How? Why?
> >>>>
> >>>> [root@thehulk home]# btrfs su show /mnt/x5a/home/107/snapshot
> >>>> home/107/snapshot
> >>>>         Name:                   snapshot
> >>>>         UUID:                   94d0bc47-dbf2-374e-b1c8-de06d729cde2
> >>>>         Parent UUID:            8bf40f97-10e0-9f47-a281-1a0b21bbbad0
> >>>>         Received UUID:          e00d5318-6efd-824e-ac91-f25efa5c2a74
> >>>>         Creation time:          2017-07-21 00:00:25 -0400
> >>>>         Subvolume ID:           433
> >>>>         Generation:             222
> >>>>         Gen at creation:        221
> >>>>         Parent ID:              257
> >>>>         Top level ID:           257
> >>>>         Flags:                  readonly
> >>>>         Snapshot(s):
> >>>>
> >>>> If my guess is correct, btrfs has found this old snapshot and
> >>>> referenced it without me telling it to do so. The result is that the
> >>>> newly executed btrfs commands shown above have a totally unexpected
> >>>> result.
> >>>>
> >>>> Today's new snapshot will not contain any files newer than 2017-07-21.
> >>>> Is this a known issue?
> >>>>
> >>>> Refer back to the commands at the top of this message. I created a new
> >>>> snapshot and did a full (non-incremental) send to the target location
> >>>> (/mnt/x5a/home). Then I created a snapshot and did a send which only
> >>>> referenced the prior snapshot created today. Nowhere did I reference
> >>>> the ancient /mnt/x5a/home/107/snapshot. (Many prior snapshots exist at
> >>>> this backup location -- it was intended to hold a lot of them.) Yet,
> >>>> the very presence of /mnt/x5a/home/107/snapshot on the target device
> >>>> resulted in today's backup (and all recent backups) being worthless
> >>>> due to them missing all files since  2017-07-21.
> >>>>
> >>>> These results are totally repeatable, given my set of existing
> >>>> backups. But it's bizarre to me. As I understand it, a staff person
> >>>> could transfer a btrfs snapshot to a target volume and it's mere
> >>>> presence there could make all subsequent backups (incremental sends)
> >>>> to that target volume invalid and useless. If that is true... wow.
> >>>>
> >>>> Another interesting observation is that the device that contains the
> >>>> source snapshot, /home/.snapshots, also contains many, many prior
> >>>> snapshots, going back to when this system was first set up. Why do
> >>>> none of them cause a problem? Is it because I had never used
> >>>> /home/.snapshots as the target of a receive operation (until I did so
> >>>> today in testing the steps above)?
> >>>>
> >>>> As far as repeating these steps, all this was totally repeatable for
> >>>> me as long as /mnt/x5a/home/107/snapshot existed on the target of the
> >>>> receive command (/mnt/x5a/home/). I do not know how to create such a
> >>>> "rogue" snapshot on purpose, but doing so may be key to reproducing my
> >>>> results.
> >>>>
> >>>> Maybe somebody can explain to me what's really happening. How is it
> >>>> possible that an old snapshot created  2017-07-21 could have the same
> >>>> Received UUID as snapshots created today? And how could that fact lead
> >>>> to the result I'm seeing, which seems very serious. (Unexpected
> >>>> missing files from a backup which was completed without errors is
> >>>> pretty serious in my book.)
> >>>>
> >>>> Most important question: how can we rely on automated incremental
> >>>> backups with btrfs send | receive given what I'm observing here
> >>>> (assuming my observations are roughly correct)?
> >>>>
> >>>> Here's more info just to confirm that my results are not due to
> >>>> filesystem corruption.
> >>>>
> >>>> running check on unmounted volume that contains /mnt/x5a/home/test2/home:
> >>>> [root@srv]# btrfs check -p /dev/mapper/x5a_luks
> >>>> Checking filesystem on /dev/mapper/x5a_luks
> >>>> UUID: 724f7cc1-41d8-456f-9fab-7ace457bd62a
> >>>> checking extents [o]
> >>>> checking free space cache [.]
> >>>> checking fs roots [o]
> >>>> checking csums
> >>>> checking root refs
> >>>> found 258178555904 bytes used, no error found
> >>>> total csum bytes: 250354776
> >>>> total tree bytes: 1752088576
> >>>> total fs tree bytes: 1308540928
> >>>> total extent tree bytes: 175161344
> >>>> btree space waste bytes: 215594634
> >>>> file data blocks allocated: 258634637312
> >>>>  referenced 292888985600
> >>>>
> >>>> [root@srv]# btrfs fi show /mnt/x5a/
> >>>> Label: 'x5a_top'  uuid: 724f7cc1-41d8-456f-9fab-7ace457bd62a
> >>>>         Total devices 1 FS bytes used 240.45GiB
> >>>>         devid    1 size 4.55TiB used 244.07GiB path /dev/mapper/x5a_luks
> >>>>
> >>>> [root@srv]# btrfs fi df /mnt/x5a/
> >>>> Data, single: total=239.01GiB, used=238.82GiB
> >>>> System, DUP: total=32.00MiB, used=48.00KiB
> >>>> Metadata, DUP: total=2.50GiB, used=1.63GiB
> >>>> GlobalReserve, single: total=422.73MiB, used=0.00B
> >>>>
> >>>> # btrfs scrub status -d /mnt/x5a/
> >>>> scrub status for 724f7cc1-41d8-456f-9fab-7ace457bd62a
> >>>> scrub device /dev/mapper/x5a_luks (id 1) history
> >>>>         scrub started at Wed Sep  6 17:09:58 2017 and finished after 
> >>>> 01:42:30
> >>>>         total bytes scrubbed: 242.08GiB with 0 errors
> >>>> --
> >>>> 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
> >>>
> >>>
> > --
> > 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
> >
--
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