mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-11-07 23:04:53 +03:00
tests: rsend/send-c_props: make it chooch
Original error:
23:47:40.59 SUCCESS: eval zfs receive -dFv testpool2 < /mnt/testroot/backdir-rsend/pool-final-p
23:47:40.61 1,23d0
23:47:40.61 < type filesystem -
23:47:40.61 < origin POOL@psnap -
23:47:40.61 < volblocksize - -
23:47:40.61 < acltype nfsv4 inherited from POOL
23:47:40.61 < dnodesize legacy inherited from POOL
23:47:40.61 < atime off local
23:47:40.61 < canmount off local
23:47:40.61 < checksum off local
23:47:40.61 < compression off local
23:47:40.61 < copies 3 local
23:47:40.61 < devices off local
23:47:40.61 < exec off local
23:47:40.61 < quota none default
23:47:40.61 < readonly on local
23:47:40.61 < recordsize 128K local
23:47:40.61 < reservation none default
23:47:40.61 < setuid off local
23:47:40.61 < snapdir hidden local
23:47:40.61 < version 5 -
23:47:40.61 < volsize - -
23:47:40.61 < xattr off local
23:47:40.61 < mountpoint /PREFIX inherited from POOL
23:47:40.61 < jailed on local
23:47:40.62 cannot open 'testpool2/pclone': dataset does not exist
23:47:40.62 ERROR: cmp_ds_prop testpool/pclone testpool2/pclone exited 1
So: (a) actually send all the datasets in -p mode and
(b) drop origin for clones sent with -p:
00:38:05.46 SUCCESS: eval zfs receive -dFv testpool2 < /mnt/testroot/backdir-rsend/pool-final-p
00:38:05.48 2c2
00:38:05.48 < origin POOL@psnap
00:38:05.48 ---
00:38:05.48 > origin POOL
00:38:05.49 ERROR: cmp_ds_prop testpool/pclone testpool2/pclone nosource exited 1
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: John Kennedy <john.kennedy@delphix.com>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #13250
Closes #13259
This commit is contained in:
parent
a5addbbb7d
commit
b1579689a9
@ -207,14 +207,18 @@ function cmp_ds_cont
|
||||
#
|
||||
# $1 dataset 1
|
||||
# $2 dataset 2
|
||||
# $3 -n == don't track property source
|
||||
# $4 -n == don't track the origin property
|
||||
#
|
||||
function cmp_ds_prop
|
||||
{
|
||||
typeset dtst1=$1
|
||||
typeset dtst2=$2
|
||||
typeset source=",source"
|
||||
[ -n "$3" ] && source=
|
||||
typeset props="type,origin,volblocksize,acltype,dnodesize"
|
||||
typeset nosource=$3
|
||||
typeset noorigin=$4
|
||||
typeset source=",source"; [ -n "$nosource" ] && source=
|
||||
typeset origin=",origin"; [ -n "$noorigin" ] && origin=
|
||||
typeset props="type$origin,volblocksize,acltype,dnodesize"
|
||||
props+=",atime,canmount,checksum,compression,copies,devices"
|
||||
props+=",exec,quota,readonly,recordsize,reservation,setuid"
|
||||
props+=",snapdir,version,volsize,xattr,mountpoint"
|
||||
|
||||
@ -52,16 +52,27 @@ for opt in "-p" "-R"; do
|
||||
randomize_ds_props $POOL$ds
|
||||
done
|
||||
|
||||
log_must eval "zfs send -c $opt $POOL@final > $BACKDIR/pool-final$opt"
|
||||
log_must eval "zfs receive -d -F $POOL2 < $BACKDIR/pool-final$opt"
|
||||
if [ $opt = "-p" ]; then
|
||||
for ds in ${datasets[@]}; do
|
||||
log_must eval "zfs send -c $opt $POOL$ds@final > $BACKDIR/pool-final$opt"
|
||||
log_must eval "zfs receive -dF $POOL2 < $BACKDIR/pool-final$opt"
|
||||
done
|
||||
else
|
||||
log_must eval "zfs send -c $opt $POOL@final > $BACKDIR/pool-final$opt"
|
||||
log_must eval "zfs receive -dF $POOL2 < $BACKDIR/pool-final$opt"
|
||||
fi
|
||||
|
||||
for ds in ${datasets[@]}; do
|
||||
log_must cmp_ds_prop $POOL$ds $POOL2$ds
|
||||
typeset origin=
|
||||
if [ $opt = "-p" ] && [ ${ds/clone//} != $ds ]; then
|
||||
origin=noorigin
|
||||
fi
|
||||
log_must cmp_ds_prop $POOL$ds $POOL2$ds nosource $origin
|
||||
log_must cmp_ds_prop $POOL$ds@final $POOL2$ds@final
|
||||
done
|
||||
|
||||
# Don't cleanup the second time, since we do that on exit anyway.
|
||||
[[ $opt = "-p" ]] && cleanup
|
||||
[ $opt = "-p" ] && cleanup
|
||||
done
|
||||
|
||||
log_pass "Compressed send doesn't interfere with preservation of properties"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user