Date: Sun, 10 Jan 2016 17:55:34 +0100 From: Willem Jan Withagen <wjw@digiware.nl> To: freebsd-hackers@freebsd.org Subject: Attribute order in storing and retreiving extended attributes Message-ID: <56928D06.4050500@digiware.nl>
next in thread | raw e-mail | index | archive | help
Hi, I'm looking into why a snippet of Ceph testcode sometimes retuns error, and other times does complete oke. It seems that under Linux the way order of attributes is always consistent in the same order. Where as on FreeBSD it can happen that even with the same sequence of extattr_set_* will give a different order in the extattr_list_fd output. And because the outputbuffer is compared with memcmp an error is detected. Easy to verify with lsextattr, which also gives a different order. When things go oke the order is: # lsextattr user chain_xattr_listxatrr chain_xattr_listxatrr, size: 512 user.1111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111@1 user.1111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111 user.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ When thing go wrong, the order is: # lsextattr user chain_xattr_listxatrr chain_xattr_listxatrr, size: 512 user.1111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111 user.1111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111@1 user.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ This is on a ZFS filesystem. Is there any particular reason why these is not deterministic? I do not have a testbox with UFS available, so it is hard to verify that it occurs there too. Would this be easy to make more deterministic? --WjW
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56928D06.4050500>