here's a quick update wrt progress on this bug.

On Mon, 16 Sep 2019 08:22:56 +0100, Tim Woodall writes:
>When files have multiple extended attributes, the restore and verify
>applies them one by one.

yes and no. if you are using ext4 and have an inode size of > 128 byte,
and if you have more than one extended attribute and if at least one of
them is not very big then ext4 does store the attributes split into two
pieces, some in the inode itself and the rest in one extra block (see
...linux source.../fs/ext4/xattr.c). (ext2 doesn't do that, and i don't
know what the ext3 behaviour is.)

dump transforms that into two records on tape, which you can see if you
run dump with -v:
  DUMP: dumping EA (inode) in inode #467585
  DUMP: dumping EA (block) in inode #467585

if you see only 'block' outputs no attribute splitting has happened, and
the verification bug will not be tickled.

if you have both 'inode' and 'block' xattr records, then restore
will see two blocks for this one inode, and this is
where the old logic gets things wrong.

assuming you have 4 attributes, 1 of which ended up in the inode and 3
of which were parked in the block; restore will see the inode record
first, and complain about 'ea count changed from 1 (ie. what the tape block in
question holds) to 4 (ie what the file on the filesystem has)',
and then once more about the change from 3 to 4.

having two tape blocks contribute to one file's (attribute) data
is a bit of a pain to fix, but i've got a fix in the works; not covering
all 100% of the possible situations yet but close.

regards
az


-- 
Alexander Zangerl + GPG Key 2FCCF66BB963BD5F + http://snafu.priv.at/
Never meddle in the affairs of NT. It is slow to boot
and quick to crash. -- Stephen Harris

Attachment: signature.asc
Description: Digital Signature

Reply via email to