All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2 V3] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost
@ 2013-10-11  4:19 rjohnston
  2013-10-11  4:19 ` [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: rjohnston @ 2013-10-11  4:19 UTC (permalink / raw)
  To: xfs

Extended attributes are lost after multi-stream xfsdump/xfsrestore
of wholly-sparse files.  This can happen in two ways:

  1 - The restore succeeds, however the extended attributes are lost
  2 - The restore in not successful because xfsrestore segfaults
      with the following warning:

        "partial_reg: Out of records. Extend attrs applied early."

---
Changelog
V2:
  Updated test description and comments
  Changed test status to default to failure
  Added missing _requires_XXXX statements
  Removed the attr root (-R) namespace argument
V3:
  Split into 2 tests and used functions from the common
  directory where appropriate.

--Rich

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
  2013-10-11  4:19 [PATCH 0/2 V3] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
@ 2013-10-11  4:19 ` rjohnston
  2013-10-18 18:40   ` Eric Sandeen
  2013-10-11  4:19 ` [PATCH 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early rjohnston
  2013-10-21 20:02 ` [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
  2 siblings, 1 reply; 16+ messages in thread
From: rjohnston @ 2013-10-11  4:19 UTC (permalink / raw)
  To: xfs

[-- Attachment #1: xfstests-verify-extended-attributes-after-multi-stream-xfsdump-xfsrestore.patch --]
[-- Type: text/plain, Size: 4032 bytes --]

Verify extended attributes are not lost after multi-stream
xfsdump/xfsrestore of wholly-sparse files.  The restore succeeds,
however the extended attributes for that file are lost.

Signed-off-by: Rich Johnston <rjohnston@sgi.com>

diff --git a/tests/xfs/350 b/tests/xfs/350
new file mode 100755
index 0000000..88943e4
--- /dev/null
+++ b/tests/xfs/350
@@ -0,0 +1,72 @@
+#! /bin/bash
+# FS QA Test No. 350
+#
+# Verify multi-stream xfsdump/restore preserves extended attributes
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2013 Red Hat, Inc.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1	# failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+    cd /
+    rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/dump
+. ./common/attr
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs xfs
+_supported_os Linux
+_require_scratch
+
+# Extended attributes
+attr_name=attrname
+attr_value=1234
+
+rm -f $seqres.full
+
+_create_dumpdir_fill_ea 2>&1 >> $seqres.full
+
+# Create and add wholly-sparse file to the dump directory
+$XFS_IO_PROG -f -c "truncate 1t" $dump_dir/sparsefile 2>&1 >> $seqres.full ||
+_fail "could not create \"$dump_dir\"/sparsefile"
+
+# Set the xattr on sparsefile
+$ATTR_PROG -s $attr_name -V $attr_value $dump_dir/sparsefile 2>&1 >> $seqres.full || _fail "could not set ATTR for \"$dump_dir\"/sparsefile"
+
+_do_dump_multi_file --multi 4  2>&1 >> $seqres.full
+_do_restore_multi_file --multi 4 2>&1 >> $seqres.full
+_diff_compare_eas 
+
+status=0
+exit 
diff --git a/tests/xfs/350.out b/tests/xfs/350.out
new file mode 100644
index 0000000..6798ded
--- /dev/null
+++ b/tests/xfs/350.out
@@ -0,0 +1,34 @@
+QA output created by 350
+Comparing dump directory with restore directory
+Looking at the extended attributes (EAs)
+EAs on dump
+User names
+Attribute "attr5" had a 8 byte value for DUMP_DIR/dir:
+dir_text
+Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll:
+some_text
+Attribute "attrname" had a 4 byte value for DUMP_DIR/sparsefile:
+1234
+Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll:
+some_text3
+Root names
+Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg:
+some_text2
+Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg:
+some_text4
+EAs on restore
+User names
+Attribute "attr5" had a 8 byte value for DUMP_DIR/dir:
+dir_text
+Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll:
+some_text
+Attribute "attrname" had a 4 byte value for DUMP_DIR/sparsefile:
+1234
+Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll:
+some_text3
+Root names
+Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg:
+some_text2
+Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg:
+some_text4
+Files 350.ea1 and 350.ea2 are identical
diff --git a/tests/xfs/group b/tests/xfs/group
index 352a4c5..2cd3cf0 100644
--- a/tests/xfs/group
+++ b/tests/xfs/group
@@ -179,3 +179,4 @@
 297 auto freeze
 298 auto attr symlink quick
 299 auto quota
+350 dump auto


_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early
  2013-10-11  4:19 [PATCH 0/2 V3] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
  2013-10-11  4:19 ` [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
@ 2013-10-11  4:19 ` rjohnston
  2013-10-18 18:53   ` Eric Sandeen
  2013-10-21 20:02 ` [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
  2 siblings, 1 reply; 16+ messages in thread
From: rjohnston @ 2013-10-11  4:19 UTC (permalink / raw)
  To: xfs

[-- Attachment #1: xfstests-multi-stream-xfsdump-xfsrestore-of-wholly-sparse-files.patch --]
[-- Type: text/plain, Size: 3077 bytes --]

Multi-stream xfsdump/xfsrestore of more than partialmax wholly-sparse
files segfaults with the following warning:

  "partial_reg: Out of records. Extend attrs applied early."

Add a test that dumps and restores partialmax + 1 wholly-sparse files.

Signed-off-by: Rich Johnston <rjohnston@sgi.com>

diff --git a/tests/xfs/351 b/tests/xfs/351
new file mode 100755
index 0000000..43b14c2
--- /dev/null
+++ b/tests/xfs/351
@@ -0,0 +1,71 @@
+#! /bin/bash
+# FS QA Test No. 351
+#
+# Dump and restore partialmax + 1 wholly-sparse files
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2013 SGI.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1	# failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+    cd /
+    rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/dump
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs xfs
+_supported_os Linux
+_require_scratch
+#dump_dir=/mnt/test/$dump_sdir
+
+rm -f $seqres.full
+rm -rf $restore_dir/*
+rm -f $tmp.stream? 
+
+echo "Silence is golden."
+_wipe_fs
+mkdir $dump_dir 2>&1 >> $seqres.full || _fail "mkdir \"$dump_dir\" failed"
+for i in `seq 1 4`; do
+	$XFS_IO_PROG -f -c "truncate 1t" $dump_dir/sparsefile$i \
+		2>&1 >> $seqres.full || _fail "failed to create sparsefile\"$i\""
+done
+# Dump and restore the files
+_prepare_restore_dir
+$XFSDUMP_PROG -L session -M label1 -M label2 -f $tmp.stream1 \
+	-f $tmp.stream2 $SCRATCH_MNT -s $dump_sdir \
+	2>&1 >> $seqres.full || _fail "dump failed"
+$XFSRESTORE_PROG -F -f $tmp.stream1 -f $tmp.stream2 $restore_dir \
+	2>&1 >> $seqres.full || _fail "restore failed"
+status=0
+exit 
diff --git a/tests/xfs/351.out b/tests/xfs/351.out
new file mode 100644
index 0000000..42cf52e
--- /dev/null
+++ b/tests/xfs/351.out
@@ -0,0 +1,2 @@
+QA output created by 351
+Silence is golden.
diff --git a/tests/xfs/group b/tests/xfs/group
index 352a4c5..3e73f1d 100644
--- a/tests/xfs/group
+++ b/tests/xfs/group
@@ -179,3 +179,4 @@
 297 auto freeze
 298 auto attr symlink quick
 299 auto quota
+351 auto dump


_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
  2013-10-11  4:19 ` [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
@ 2013-10-18 18:40   ` Eric Sandeen
  2013-10-18 18:47     ` Eric Sandeen
  0 siblings, 1 reply; 16+ messages in thread
From: Eric Sandeen @ 2013-10-18 18:40 UTC (permalink / raw)
  To: rjohnston; +Cc: xfs

On 10/10/13 11:19 PM, rjohnston@sgi.com wrote:
> Verify extended attributes are not lost after multi-stream
> xfsdump/xfsrestore of wholly-sparse files.  The restore succeeds,
> however the extended attributes for that file are lost.
> 
> Signed-off-by: Rich Johnston <rjohnston@sgi.com>
> 
> diff --git a/tests/xfs/350 b/tests/xfs/350
> new file mode 100755
> index 0000000..88943e4
> --- /dev/null
> +++ b/tests/xfs/350
> @@ -0,0 +1,72 @@
> +#! /bin/bash
> +# FS QA Test No. 350
> +#
> +# Verify multi-stream xfsdump/restore preserves extended attributes
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2013 Red Hat, Inc.  All Rights Reserved.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it would be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write the Free Software Foundation,
> +# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
> +#-----------------------------------------------------------------------
> +#
> +
> +seq=`basename $0`
> +seqres=$RESULT_DIR/$seq
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1	# failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> +    cd /
> +    rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +. ./common/dump
> +. ./common/attr
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs xfs
> +_supported_os Linux
> +_require_scratch
> +
> +# Extended attributes
> +attr_name=attrname
> +attr_value=1234
> +
> +rm -f $seqres.full
> +
> +_create_dumpdir_fill_ea 2>&1 >> $seqres.full
> +
> +# Create and add wholly-sparse file to the dump directory
> +$XFS_IO_PROG -f -c "truncate 1t" $dump_dir/sparsefile 2>&1 >> $seqres.full ||
> +_fail "could not create \"$dump_dir\"/sparsefile"

I . . guess that works w/o a continuation?  I'd have done this; note also
the 2>&1 needs to go after the file redirect
(http://www.tldp.org/LDP/abs/html/io-redirection.html)

+$XFS_IO_PROG -f -c "truncate 1t" $dump_dir/sparsefile >> $seqres.full 2>&1  || \
+	_fail "could not create \"$dump_dir\"/sparsefile"

but my bash-fu is weak, so not sure about the continuation part.  Can't hurt? :)

> +
> +# Set the xattr on sparsefile
> +$ATTR_PROG -s $attr_name -V $attr_value $dump_dir/sparsefile 2>&1 >> $seqres.full || _fail "could not set ATTR for \"$dump_dir\"/sparsefile"

same deal for the redirect:  ">> $seqres.full 2>&1"

> +
> +_do_dump_multi_file --multi 4  2>&1 >> $seqres.full
> +_do_restore_multi_file --multi 4 2>&1 >> $seqres.full

">> $seqres.full 2>&1"

Nitpicks, I guess, but if you wouldn't mind one more round...

-Eric

> +_diff_compare_eas 
> +
> +status=0
> +exit 
> diff --git a/tests/xfs/350.out b/tests/xfs/350.out
> new file mode 100644
> index 0000000..6798ded
> --- /dev/null
> +++ b/tests/xfs/350.out
> @@ -0,0 +1,34 @@
> +QA output created by 350
> +Comparing dump directory with restore directory
> +Looking at the extended attributes (EAs)
> +EAs on dump
> +User names
> +Attribute "attr5" had a 8 byte value for DUMP_DIR/dir:
> +dir_text
> +Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll:
> +some_text
> +Attribute "attrname" had a 4 byte value for DUMP_DIR/sparsefile:
> +1234
> +Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll:
> +some_text3
> +Root names
> +Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg:
> +some_text2
> +Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg:
> +some_text4
> +EAs on restore
> +User names
> +Attribute "attr5" had a 8 byte value for DUMP_DIR/dir:
> +dir_text
> +Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll:
> +some_text
> +Attribute "attrname" had a 4 byte value for DUMP_DIR/sparsefile:
> +1234
> +Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll:
> +some_text3
> +Root names
> +Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg:
> +some_text2
> +Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg:
> +some_text4
> +Files 350.ea1 and 350.ea2 are identical
> diff --git a/tests/xfs/group b/tests/xfs/group
> index 352a4c5..2cd3cf0 100644
> --- a/tests/xfs/group
> +++ b/tests/xfs/group
> @@ -179,3 +179,4 @@
>  297 auto freeze
>  298 auto attr symlink quick
>  299 auto quota
> +350 dump auto
> 
> 
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
> 

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
  2013-10-18 18:40   ` Eric Sandeen
@ 2013-10-18 18:47     ` Eric Sandeen
  2013-10-18 22:46       ` Dave Chinner
  0 siblings, 1 reply; 16+ messages in thread
From: Eric Sandeen @ 2013-10-18 18:47 UTC (permalink / raw)
  To: rjohnston; +Cc: xfs

On 10/18/13 1:40 PM, Eric Sandeen wrote:
> On 10/10/13 11:19 PM, rjohnston@sgi.com wrote:
>> Verify extended attributes are not lost after multi-stream
>> xfsdump/xfsrestore of wholly-sparse files.  The restore succeeds,
>> however the extended attributes for that file are lost.
>>
>> Signed-off-by: Rich Johnston <rjohnston@sgi.com>
>>
>> diff --git a/tests/xfs/350 b/tests/xfs/350
>> new file mode 100755
>> index 0000000..88943e4
>> --- /dev/null
>> +++ b/tests/xfs/350
>> @@ -0,0 +1,72 @@
>> +#! /bin/bash
>> +# FS QA Test No. 350
>> +#
>> +# Verify multi-stream xfsdump/restore preserves extended attributes
>> +#
>> +#-----------------------------------------------------------------------
>> +# Copyright (c) 2013 Red Hat, Inc.  All Rights Reserved.
>> +#
>> +# This program is free software; you can redistribute it and/or
>> +# modify it under the terms of the GNU General Public License as
>> +# published by the Free Software Foundation.
>> +#
>> +# This program is distributed in the hope that it would be useful,
>> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
>> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> +# GNU General Public License for more details.
>> +#
>> +# You should have received a copy of the GNU General Public License
>> +# along with this program; if not, write the Free Software Foundation,
>> +# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
>> +#-----------------------------------------------------------------------
>> +#
>> +
>> +seq=`basename $0`
>> +seqres=$RESULT_DIR/$seq
>> +echo "QA output created by $seq"
>> +
>> +here=`pwd`
>> +tmp=/tmp/$$
>> +status=1	# failure is the default!
>> +trap "_cleanup; exit \$status" 0 1 2 3 15
>> +
>> +_cleanup()
>> +{
>> +    cd /
>> +    rm -f $tmp.*
>> +}
>> +
>> +# get standard environment, filters and checks
>> +. ./common/rc
>> +. ./common/filter
>> +. ./common/dump
>> +. ./common/attr
>> +
>> +# real QA test starts here
>> +
>> +# Modify as appropriate.
>> +_supported_fs xfs
>> +_supported_os Linux
>> +_require_scratch
>> +
>> +# Extended attributes
>> +attr_name=attrname
>> +attr_value=1234
>> +
>> +rm -f $seqres.full
>> +
>> +_create_dumpdir_fill_ea 2>&1 >> $seqres.full

whoops here too.  Tho I think _create_dumpdir_fill_ea already
does all the redirect you need.

Was going to say you need a scratch_mkfs & mount too, but 
_create_dumpdir_fill_ea() does all that under the covers?  Bleah!
Comment to that effect wouldn't hurt.

-Eric

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early
  2013-10-11  4:19 ` [PATCH 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early rjohnston
@ 2013-10-18 18:53   ` Eric Sandeen
  0 siblings, 0 replies; 16+ messages in thread
From: Eric Sandeen @ 2013-10-18 18:53 UTC (permalink / raw)
  To: rjohnston; +Cc: xfs

On 10/10/13 11:19 PM, rjohnston@sgi.com wrote:
> Multi-stream xfsdump/xfsrestore of more than partialmax wholly-sparse
> files segfaults with the following warning:
> 
>   "partial_reg: Out of records. Extend attrs applied early."
> 
> Add a test that dumps and restores partialmax + 1 wholly-sparse files.
> 
> Signed-off-by: Rich Johnston <rjohnston@sgi.com>
> 
> diff --git a/tests/xfs/351 b/tests/xfs/351
> new file mode 100755
> index 0000000..43b14c2
> --- /dev/null
> +++ b/tests/xfs/351
> @@ -0,0 +1,71 @@
> +#! /bin/bash
> +# FS QA Test No. 351
> +#
> +# Dump and restore partialmax + 1 wholly-sparse files
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2013 SGI.  All Rights Reserved.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it would be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write the Free Software Foundation,
> +# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
> +#-----------------------------------------------------------------------
> +#
> +
> +seq=`basename $0`
> +seqres=$RESULT_DIR/$seq
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1	# failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> +    cd /
> +    rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +. ./common/dump
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs xfs
> +_supported_os Linux
> +_require_scratch
> +#dump_dir=/mnt/test/$dump_sdir

remove the commented-out line?

> +
> +rm -f $seqres.full
> +rm -rf $restore_dir/*

eek, who sets $restore_dir?  Oh, sourcing common/dump does.
But nothing mounts $SCRATCH_DEV yet, right?  So this seems
like a combination of incorrect, unnecessary & dangerous.
(_wipe_fs will re-mkfs anyway).  I'd just remove it.

> +rm -f $tmp.stream? 

$tmp is /tmp/<our pid>

so /tmp/<our pid>.stream *really* shouldn't exist, and cleanup
should have removed it from the last run (with a different pid).

But I suppose it doesn't hurt to be sure...

> +
> +echo "Silence is golden."
> +_wipe_fs

Ok, wipe_fs does mkfs & mount.  Could you add a comment?

> +mkdir $dump_dir 2>&1 >> $seqres.full || _fail "mkdir \"$dump_dir\" failed"

same deal w/ the order of the redirects.  More below too.

Otherwise looks ok.

-Eric

> +for i in `seq 1 4`; do
> +	$XFS_IO_PROG -f -c "truncate 1t" $dump_dir/sparsefile$i \
> +		2>&1 >> $seqres.full || _fail "failed to create sparsefile\"$i\""
> +done
> +# Dump and restore the files
> +_prepare_restore_dir
> +$XFSDUMP_PROG -L session -M label1 -M label2 -f $tmp.stream1 \
> +	-f $tmp.stream2 $SCRATCH_MNT -s $dump_sdir \
> +	2>&1 >> $seqres.full || _fail "dump failed"
> +$XFSRESTORE_PROG -F -f $tmp.stream1 -f $tmp.stream2 $restore_dir \
> +	2>&1 >> $seqres.full || _fail "restore failed"
> +status=0
> +exit 
> diff --git a/tests/xfs/351.out b/tests/xfs/351.out
> new file mode 100644
> index 0000000..42cf52e
> --- /dev/null
> +++ b/tests/xfs/351.out
> @@ -0,0 +1,2 @@
> +QA output created by 351
> +Silence is golden.
> diff --git a/tests/xfs/group b/tests/xfs/group
> index 352a4c5..3e73f1d 100644
> --- a/tests/xfs/group
> +++ b/tests/xfs/group
> @@ -179,3 +179,4 @@
>  297 auto freeze
>  298 auto attr symlink quick
>  299 auto quota
> +351 auto dump
> 
> 
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
> 

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
  2013-10-18 18:47     ` Eric Sandeen
@ 2013-10-18 22:46       ` Dave Chinner
  2013-10-18 22:47         ` Eric Sandeen
  0 siblings, 1 reply; 16+ messages in thread
From: Dave Chinner @ 2013-10-18 22:46 UTC (permalink / raw)
  To: Eric Sandeen; +Cc: rjohnston, xfs

On Fri, Oct 18, 2013 at 01:47:21PM -0500, Eric Sandeen wrote:
> On 10/18/13 1:40 PM, Eric Sandeen wrote:
> > On 10/10/13 11:19 PM, rjohnston@sgi.com wrote:
> >> Verify extended attributes are not lost after multi-stream
> >> xfsdump/xfsrestore of wholly-sparse files.  The restore succeeds,
> >> however the extended attributes for that file are lost.
> >>
> >> Signed-off-by: Rich Johnston <rjohnston@sgi.com>
> >>
> >> diff --git a/tests/xfs/350 b/tests/xfs/350
> >> new file mode 100755
> >> index 0000000..88943e4
> >> --- /dev/null
> >> +++ b/tests/xfs/350
> >> @@ -0,0 +1,72 @@
> >> +#! /bin/bash
> >> +# FS QA Test No. 350
> >> +#
> >> +# Verify multi-stream xfsdump/restore preserves extended attributes
> >> +#
> >> +#-----------------------------------------------------------------------
> >> +# Copyright (c) 2013 Red Hat, Inc.  All Rights Reserved.
> >> +#
> >> +# This program is free software; you can redistribute it and/or
> >> +# modify it under the terms of the GNU General Public License as
> >> +# published by the Free Software Foundation.
> >> +#
> >> +# This program is distributed in the hope that it would be useful,
> >> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> >> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> >> +# GNU General Public License for more details.
> >> +#
> >> +# You should have received a copy of the GNU General Public License
> >> +# along with this program; if not, write the Free Software Foundation,
> >> +# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
> >> +#-----------------------------------------------------------------------
> >> +#
> >> +
> >> +seq=`basename $0`
> >> +seqres=$RESULT_DIR/$seq
> >> +echo "QA output created by $seq"
> >> +
> >> +here=`pwd`
> >> +tmp=/tmp/$$
> >> +status=1	# failure is the default!
> >> +trap "_cleanup; exit \$status" 0 1 2 3 15
> >> +
> >> +_cleanup()
> >> +{
> >> +    cd /
> >> +    rm -f $tmp.*
> >> +}
> >> +
> >> +# get standard environment, filters and checks
> >> +. ./common/rc
> >> +. ./common/filter
> >> +. ./common/dump
> >> +. ./common/attr
> >> +
> >> +# real QA test starts here
> >> +
> >> +# Modify as appropriate.
> >> +_supported_fs xfs
> >> +_supported_os Linux
> >> +_require_scratch
> >> +
> >> +# Extended attributes
> >> +attr_name=attrname
> >> +attr_value=1234
> >> +
> >> +rm -f $seqres.full
> >> +
> >> +_create_dumpdir_fill_ea 2>&1 >> $seqres.full
> 
> whoops here too.  Tho I think _create_dumpdir_fill_ea already
> does all the redirect you need.
> 
> Was going to say you need a scratch_mkfs & mount too, but 
> _create_dumpdir_fill_ea() does all that under the covers?  Bleah!
> Comment to that effect wouldn't hurt.

All the dump/restore tests do this. It's common code, so once you
know it for one, it's obvious for the rest. Hence addin a comment in
just this test would be kinda strange...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
  2013-10-18 22:46       ` Dave Chinner
@ 2013-10-18 22:47         ` Eric Sandeen
  0 siblings, 0 replies; 16+ messages in thread
From: Eric Sandeen @ 2013-10-18 22:47 UTC (permalink / raw)
  To: Dave Chinner; +Cc: rjohnston, xfs

On 10/18/13 5:46 PM, Dave Chinner wrote:
> All the dump/restore tests do this. It's common code, so once you
> know it for one, it's obvious for the rest. Hence addin a comment in
> just this test would be kinda strange...

Meh, ok.  So I have to know it, eh?  ;)

Fine by me, then.

-Eric

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost
  2013-10-11  4:19 [PATCH 0/2 V3] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
  2013-10-11  4:19 ` [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
  2013-10-11  4:19 ` [PATCH 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early rjohnston
@ 2013-10-21 20:02 ` rjohnston
  2013-10-21 20:02   ` [PATCH V4 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
                     ` (2 more replies)
  2 siblings, 3 replies; 16+ messages in thread
From: rjohnston @ 2013-10-21 20:02 UTC (permalink / raw)
  To: xfs

Extended attributes are lost after multi-stream xfsdump/xfsrestore
of wholly-sparse files.  This can happen in two ways:

  1 - The restore succeeds, however the extended attributes are lost
  2 - The restore in not successful because xfsrestore segfaults
      with the following warning:

         "partial_reg: Out of records. Extend attrs applied
          early."

---
Changelog
V2:
  Updated test description and comments
  Changed test status to default to failure
  Added missing _requires_XXXX statements
  Removed the attr root (-R) namespace argument
V3:
  Split into 2 tests and used functions from the common
  directory where appropriate.

--Rich

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH V4 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
  2013-10-21 20:02 ` [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
@ 2013-10-21 20:02   ` rjohnston
  2013-10-23 21:03     ` Eric Sandeen
  2013-10-24  0:14     ` Rich Johnston
  2013-10-21 20:02   ` [PATCH V4 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early rjohnston
  2013-10-21 20:07   ` [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost Rich Johnston
  2 siblings, 2 replies; 16+ messages in thread
From: rjohnston @ 2013-10-21 20:02 UTC (permalink / raw)
  To: xfs

Verify extended attributes are not lost after multi-stream
xfsdump/xfsrestore of wholly-sparse files.  The restore succeeds,
however the extended attributes for that file are lost.

Signed-off-by: Rich Johnston <rjohnston@sgi.com>

diff --git a/tests/xfs/350 b/tests/xfs/350
new file mode 100755
index 0000000..df4c258
--- /dev/null
+++ b/tests/xfs/350
@@ -0,0 +1,73 @@
+#! /bin/bash
+# FS QA Test No. 350
+#
+# Verify multi-stream xfsdump/restore preserves extended attributes
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2013 Red Hat, Inc.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1	# failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+    cd /
+    rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/dump
+. ./common/attr
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs xfs
+_supported_os Linux
+_require_scratch
+
+# Extended attributes
+attr_name=attrname
+attr_value=1234
+
+rm -f $seqres.full
+
+_create_dumpdir_fill_ea
+
+# Create and add wholly-sparse file to the dump directory
+$XFS_IO_PROG -f -c "truncate 1t" $dump_dir/sparsefile >> $seqres.full 2>&1 \
+	|| _fail "could not create \"$dump_dir\"/sparsefile"
+
+# Set the xattr on sparsefile
+$ATTR_PROG -s $attr_name -V $attr_value $dump_dir/sparsefile >> $seqres.full 2>&1 \
+	|| _fail "could not set ATTR for \"$dump_dir\"/sparsefile"
+
+_do_dump_multi_file --multi 4  >> $seqres.full 2>&1
+_do_restore_multi_file --multi 4 >> $seqres.full 2>&1
+_diff_compare_eas
+
+status=0
+exit
diff --git a/tests/xfs/350.out b/tests/xfs/350.out
new file mode 100644
index 0000000..31a88b8
--- /dev/null
+++ b/tests/xfs/350.out
@@ -0,0 +1,46 @@
+QA output created by 350
+Creating directory system to dump using src/fill.
+Setup Attribute "attr1" set to a 9 byte value for smalll:
+some_text
+.Attribute "attr2" set to a 10 byte value for biggg:
+some_text2
+.Attribute "attr3" set to a 10 byte value for sub/smalll:
+some_text3
+.Attribute "attr4" set to a 10 byte value for sub/biggg:
+some_text4
+.Attribute "attr5" set to a 8 byte value for dir:
+dir_text
+...............
+Comparing dump directory with restore directory
+Looking at the extended attributes (EAs)
+EAs on dump
+User names
+Attribute "attr5" had a 8 byte value for DUMP_DIR/dir:
+dir_text
+Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll:
+some_text
+Attribute "attrname" had a 4 byte value for DUMP_DIR/sparsefile:
+1234
+Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll:
+some_text3
+Root names
+Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg:
+some_text2
+Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg:
+some_text4
+EAs on restore
+User names
+Attribute "attr5" had a 8 byte value for DUMP_DIR/dir:
+dir_text
+Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll:
+some_text
+Attribute "attrname" had a 4 byte value for DUMP_DIR/sparsefile:
+1234
+Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll:
+some_text3
+Root names
+Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg:
+some_text2
+Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg:
+some_text4
+Files 350.ea1 and 350.ea2 are identical
diff --git a/tests/xfs/group b/tests/xfs/group
index 17fff27..efa025d 100644
--- a/tests/xfs/group
+++ b/tests/xfs/group
@@ -179,3 +179,4 @@
 297 auto freeze
 298 auto attr symlink quick
 299 auto quota
+350 auto dump

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH V4 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early
  2013-10-21 20:02 ` [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
  2013-10-21 20:02   ` [PATCH V4 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
@ 2013-10-21 20:02   ` rjohnston
  2013-10-23 21:03     ` Eric Sandeen
  2013-10-24  0:14     ` Rich Johnston
  2013-10-21 20:07   ` [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost Rich Johnston
  2 siblings, 2 replies; 16+ messages in thread
From: rjohnston @ 2013-10-21 20:02 UTC (permalink / raw)
  To: xfs

Multi-stream xfsdump/xfsrestore of more than partialmax wholly-sparse
files segfaults with the following warning:

  "partial_reg: Out of records. Extend attrs applied early."

Add a test that dumps and restores partialmax + 1 wholly-sparse files.

Signed-off-by: Rich Johnston <rjohnston@sgi.com>

---

diff --git a/tests/xfs/351 b/tests/xfs/351
new file mode 100755
index 0000000..c0d8afb
--- /dev/null
+++ b/tests/xfs/351
@@ -0,0 +1,68 @@
+#! /bin/bash
+# FS QA Test No. 351
+#
+# Dump and restore partialmax + 1 wholly-sparse files
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2013 SGI.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1	# failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+    cd /
+    rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/dump
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs xfs
+_supported_os Linux
+_require_scratch
+
+rm -f $seqres.full
+
+echo "Silence is golden."
+_wipe_fs
+mkdir $dump_dir >> $seqres.full 2>&1 || _fail "mkdir \"$dump_dir\" failed"
+for i in `seq 1 4`; do
+	$XFS_IO_PROG -f -c "truncate 1t" $dump_dir/sparsefile$i \
+		>> $seqres.full 2>&1 || _fail "failed to create sparsefile\"$i\""
+done
+# Dump and restore the files
+_prepare_restore_dir
+$XFSDUMP_PROG -L session -M label1 -M label2 -f $tmp.stream1 \
+	-f $tmp.stream2 $SCRATCH_MNT -s $dump_sdir \
+	>> $seqres.full 2>&1 || _fail "dump failed"
+$XFSRESTORE_PROG -F -f $tmp.stream1 -f $tmp.stream2 $restore_dir \
+	>> $seqres.full 2>&1 || _fail "restore failed"
+status=0
+exit 
diff --git a/tests/xfs/351.out b/tests/xfs/351.out
new file mode 100644
index 0000000..42cf52e
--- /dev/null
+++ b/tests/xfs/351.out
@@ -0,0 +1,2 @@
+QA output created by 351
+Silence is golden.
diff --git a/tests/xfs/group b/tests/xfs/group
index 17fff27..53ea498 100644
--- a/tests/xfs/group
+++ b/tests/xfs/group
@@ -179,3 +179,4 @@
 297 auto freeze
 298 auto attr symlink quick
 299 auto quota
+351 auto dump


_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost
  2013-10-21 20:02 ` [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
  2013-10-21 20:02   ` [PATCH V4 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
  2013-10-21 20:02   ` [PATCH V4 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early rjohnston
@ 2013-10-21 20:07   ` Rich Johnston
  2 siblings, 0 replies; 16+ messages in thread
From: Rich Johnston @ 2013-10-21 20:07 UTC (permalink / raw)
  To: xfs

On 10/21/2013 03:02 PM, rjohnston@sgi.com wrote:
> Extended attributes are lost after multi-stream xfsdump/xfsrestore
> of wholly-sparse files.  This can happen in two ways:
>
>    1 - The restore succeeds, however the extended attributes are lost
>    2 - The restore in not successful because xfsrestore segfaults
>        with the following warning:
>
>           "partial_reg: Out of records. Extend attrs applied
>            early."
>
> ---
> Changelog
> V2:
>    Updated test description and comments
>    Changed test status to default to failure
>    Added missing _requires_XXXX statements
>    Removed the attr root (-R) namespace argument
> V3:
>    Split into 2 tests and used functions from the common
>    directory where appropriate.
>
V4:
     Addressed Eric's comments
> --Rich
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
>

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH V4 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
  2013-10-21 20:02   ` [PATCH V4 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
@ 2013-10-23 21:03     ` Eric Sandeen
  2013-10-24  0:14     ` Rich Johnston
  1 sibling, 0 replies; 16+ messages in thread
From: Eric Sandeen @ 2013-10-23 21:03 UTC (permalink / raw)
  To: rjohnston, xfs

On 10/21/13 3:02 PM, rjohnston@sgi.com wrote:
> Verify extended attributes are not lost after multi-stream
> xfsdump/xfsrestore of wholly-sparse files.  The restore succeeds,
> however the extended attributes for that file are lost.
> 
> Signed-off-by: Rich Johnston <rjohnston@sgi.com>

Reviewed-by: Eric Sandeen <sandeen@redhat.com>

> 
> diff --git a/tests/xfs/350 b/tests/xfs/350
> new file mode 100755
> index 0000000..df4c258
> --- /dev/null
> +++ b/tests/xfs/350
> @@ -0,0 +1,73 @@
> +#! /bin/bash
> +# FS QA Test No. 350
> +#
> +# Verify multi-stream xfsdump/restore preserves extended attributes
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2013 Red Hat, Inc.  All Rights Reserved.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it would be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write the Free Software Foundation,
> +# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
> +#-----------------------------------------------------------------------
> +#
> +
> +seq=`basename $0`
> +seqres=$RESULT_DIR/$seq
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1	# failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> +    cd /
> +    rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +. ./common/dump
> +. ./common/attr
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs xfs
> +_supported_os Linux
> +_require_scratch
> +
> +# Extended attributes
> +attr_name=attrname
> +attr_value=1234
> +
> +rm -f $seqres.full
> +
> +_create_dumpdir_fill_ea
> +
> +# Create and add wholly-sparse file to the dump directory
> +$XFS_IO_PROG -f -c "truncate 1t" $dump_dir/sparsefile >> $seqres.full 2>&1 \
> +	|| _fail "could not create \"$dump_dir\"/sparsefile"
> +
> +# Set the xattr on sparsefile
> +$ATTR_PROG -s $attr_name -V $attr_value $dump_dir/sparsefile >> $seqres.full 2>&1 \
> +	|| _fail "could not set ATTR for \"$dump_dir\"/sparsefile"
> +
> +_do_dump_multi_file --multi 4  >> $seqres.full 2>&1
> +_do_restore_multi_file --multi 4 >> $seqres.full 2>&1
> +_diff_compare_eas
> +
> +status=0
> +exit
> diff --git a/tests/xfs/350.out b/tests/xfs/350.out
> new file mode 100644
> index 0000000..31a88b8
> --- /dev/null
> +++ b/tests/xfs/350.out
> @@ -0,0 +1,46 @@
> +QA output created by 350
> +Creating directory system to dump using src/fill.
> +Setup Attribute "attr1" set to a 9 byte value for smalll:
> +some_text
> +.Attribute "attr2" set to a 10 byte value for biggg:
> +some_text2
> +.Attribute "attr3" set to a 10 byte value for sub/smalll:
> +some_text3
> +.Attribute "attr4" set to a 10 byte value for sub/biggg:
> +some_text4
> +.Attribute "attr5" set to a 8 byte value for dir:
> +dir_text
> +...............
> +Comparing dump directory with restore directory
> +Looking at the extended attributes (EAs)
> +EAs on dump
> +User names
> +Attribute "attr5" had a 8 byte value for DUMP_DIR/dir:
> +dir_text
> +Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll:
> +some_text
> +Attribute "attrname" had a 4 byte value for DUMP_DIR/sparsefile:
> +1234
> +Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll:
> +some_text3
> +Root names
> +Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg:
> +some_text2
> +Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg:
> +some_text4
> +EAs on restore
> +User names
> +Attribute "attr5" had a 8 byte value for DUMP_DIR/dir:
> +dir_text
> +Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll:
> +some_text
> +Attribute "attrname" had a 4 byte value for DUMP_DIR/sparsefile:
> +1234
> +Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll:
> +some_text3
> +Root names
> +Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg:
> +some_text2
> +Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg:
> +some_text4
> +Files 350.ea1 and 350.ea2 are identical
> diff --git a/tests/xfs/group b/tests/xfs/group
> index 17fff27..efa025d 100644
> --- a/tests/xfs/group
> +++ b/tests/xfs/group
> @@ -179,3 +179,4 @@
>  297 auto freeze
>  298 auto attr symlink quick
>  299 auto quota
> +350 auto dump
> 
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
> 

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH V4 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early
  2013-10-21 20:02   ` [PATCH V4 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early rjohnston
@ 2013-10-23 21:03     ` Eric Sandeen
  2013-10-24  0:14     ` Rich Johnston
  1 sibling, 0 replies; 16+ messages in thread
From: Eric Sandeen @ 2013-10-23 21:03 UTC (permalink / raw)
  To: rjohnston, xfs

On 10/21/13 3:02 PM, rjohnston@sgi.com wrote:
> Multi-stream xfsdump/xfsrestore of more than partialmax wholly-sparse
> files segfaults with the following warning:
> 
>   "partial_reg: Out of records. Extend attrs applied early."
> 
> Add a test that dumps and restores partialmax + 1 wholly-sparse files.
> 
> Signed-off-by: Rich Johnston <rjohnston@sgi.com>

Reviewed-by: Eric Sandeen <sandeen@redhat.com>

> 
> ---
> 
> diff --git a/tests/xfs/351 b/tests/xfs/351
> new file mode 100755
> index 0000000..c0d8afb
> --- /dev/null
> +++ b/tests/xfs/351
> @@ -0,0 +1,68 @@
> +#! /bin/bash
> +# FS QA Test No. 351
> +#
> +# Dump and restore partialmax + 1 wholly-sparse files
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2013 SGI.  All Rights Reserved.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it would be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write the Free Software Foundation,
> +# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
> +#-----------------------------------------------------------------------
> +#
> +
> +seq=`basename $0`
> +seqres=$RESULT_DIR/$seq
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1	# failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> +    cd /
> +    rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +. ./common/dump
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs xfs
> +_supported_os Linux
> +_require_scratch
> +
> +rm -f $seqres.full
> +
> +echo "Silence is golden."
> +_wipe_fs
> +mkdir $dump_dir >> $seqres.full 2>&1 || _fail "mkdir \"$dump_dir\" failed"
> +for i in `seq 1 4`; do
> +	$XFS_IO_PROG -f -c "truncate 1t" $dump_dir/sparsefile$i \
> +		>> $seqres.full 2>&1 || _fail "failed to create sparsefile\"$i\""
> +done
> +# Dump and restore the files
> +_prepare_restore_dir
> +$XFSDUMP_PROG -L session -M label1 -M label2 -f $tmp.stream1 \
> +	-f $tmp.stream2 $SCRATCH_MNT -s $dump_sdir \
> +	>> $seqres.full 2>&1 || _fail "dump failed"
> +$XFSRESTORE_PROG -F -f $tmp.stream1 -f $tmp.stream2 $restore_dir \
> +	>> $seqres.full 2>&1 || _fail "restore failed"
> +status=0
> +exit 
> diff --git a/tests/xfs/351.out b/tests/xfs/351.out
> new file mode 100644
> index 0000000..42cf52e
> --- /dev/null
> +++ b/tests/xfs/351.out
> @@ -0,0 +1,2 @@
> +QA output created by 351
> +Silence is golden.
> diff --git a/tests/xfs/group b/tests/xfs/group
> index 17fff27..53ea498 100644
> --- a/tests/xfs/group
> +++ b/tests/xfs/group
> @@ -179,3 +179,4 @@
>  297 auto freeze
>  298 auto attr symlink quick
>  299 auto quota
> +351 auto dump
> 
> 
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
> 

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH V4 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore
  2013-10-21 20:02   ` [PATCH V4 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
  2013-10-23 21:03     ` Eric Sandeen
@ 2013-10-24  0:14     ` Rich Johnston
  1 sibling, 0 replies; 16+ messages in thread
From: Rich Johnston @ 2013-10-24  0:14 UTC (permalink / raw)
  To: xfs

This has been committed.

Thanks
--Rich

commit 71026bf1f90cb376919fcc55636a665d287f394f
Author: Rich Johnston <rjohnston@sgi.com>
Date:   Mon Oct 21 20:02:31 2013 +0000

     xfstests XFS: verify extended attributes after multi-stream 
xfsdump/xfsresto

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH V4 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early
  2013-10-21 20:02   ` [PATCH V4 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early rjohnston
  2013-10-23 21:03     ` Eric Sandeen
@ 2013-10-24  0:14     ` Rich Johnston
  1 sibling, 0 replies; 16+ messages in thread
From: Rich Johnston @ 2013-10-24  0:14 UTC (permalink / raw)
  To: xfs

This has been committed.

Thanks
--Rich

commit fe8a159300c9fe9fb2e81320068fe78eb106f846
Author: Rich Johnston <rjohnston@sgi.com>
Date:   Mon Oct 21 20:02:32 2013 +0000

     xfstests: xfsdump/restore test for partial_reg: Out of records. 
Extend attr

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2013-10-24  0:14 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-11  4:19 [PATCH 0/2 V3] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
2013-10-11  4:19 ` [PATCH 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
2013-10-18 18:40   ` Eric Sandeen
2013-10-18 18:47     ` Eric Sandeen
2013-10-18 22:46       ` Dave Chinner
2013-10-18 22:47         ` Eric Sandeen
2013-10-11  4:19 ` [PATCH 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early rjohnston
2013-10-18 18:53   ` Eric Sandeen
2013-10-21 20:02 ` [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost rjohnston
2013-10-21 20:02   ` [PATCH V4 1/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore rjohnston
2013-10-23 21:03     ` Eric Sandeen
2013-10-24  0:14     ` Rich Johnston
2013-10-21 20:02   ` [PATCH V4 2/2] xfstests: xfsdump/restore test for partial_reg: Out of records. Extend attrs applied early rjohnston
2013-10-23 21:03     ` Eric Sandeen
2013-10-24  0:14     ` Rich Johnston
2013-10-21 20:07   ` [PATCH V4 0/2] xfstests XFS: verify extended attributes after multi-stream xfsdump/xfsrestore are not lost Rich Johnston

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.