Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Aug 2022 16:08:43 +0000
From:      bugzilla-noreply@freebsd.org
To:        testing@FreeBSD.org
Subject:   [Bug 266112] Capsicum extended attributes test failing on ZFS
Message-ID:  <bug-266112-32464-Nfpwl7iJcL@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-266112-32464@https.bugs.freebsd.org/bugzilla/>
References:  <bug-266112-32464@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D266112

Ed Maste <emaste@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |emaste@freebsd.org

--- Comment #1 from Ed Maste <emaste@freebsd.org> ---
Related commit:

commit 5c0061345b824eebe7a6578528f873ffcaae1cdd
Author: Ryan Moeller <ryan@iXsystems.com>
Date:   Tue Feb 15 19:35:30 2022 -0500

    Cross-platform xattr user namespace compatibility

    ZFS on Linux originally implemented xattr namespaces in a way that is
    incompatible with other operating systems.  On illumos, xattrs do not
    have namespaces.  Every xattr name is visible.  FreeBSD has two
    universally defined namespaces: EXTATTR_NAMESPACE_USER and
    EXTATTR_NAMESPACE_SYSTEM.  The system namespace is used for protected
    FreeBSD-specific attributes such as MAC labels and pnfs state.  These
    attributes have the namespace string "freebsd:system:" prefixed to the
    name in the encoding scheme used by ZFS.  The user namespace is used
    for general purpose user attributes and obeys normal access control
    mechanisms.  These attributes have no namespace string prefixed, so
    xattrs written on illumos are accessible in the user namespace on
    FreeBSD, and xattrs written to the user namespace on FreeBSD are
    accessible by the same name on illumos.

    Linux has several xattr namespaces.  On Linux, ZFS encodes the
    namespace in the xattr name for every namespace, including the user
    namespace.  As a consequence, an xattr in the user namespace with the
    name "foo" is stored by ZFS with the name "user.foo" and therefore
    appears on FreeBSD and illumos to have the name "user.foo" rather than
    "foo".  Conversely, none of the xattrs written on FreeBSD or illumos
    are accessible on Linux unless the name happens to be prefixed with one
    of the Linux xattr namespaces, in which case the namespace is stripped
    from the name.  This makes xattrs entirely incompatible between Linux
    and other platforms.

    We want to make the encoding of user namespace xattrs compatible across
    platforms.  A critical requirement of this compatibility is for xattrs
    from existing pools from FreeBSD and illumos to be accessible by the
    same names in the user namespace on Linux.  It is also necessary that
    existing pools with xattrs written by Linux retain access to those
    xattrs by the same names on Linux.  Making user namespace xattrs from
    Linux accessible by the correct names on other platforms is important.
    The handling of other namespaces is not required to be consistent.

    Add a fallback mechanism for listing and getting xattrs to treat xattrs
    as being in the user namespace if they do not match a known prefix.

    Do not allow setting or getting xattrs with a name that is prefixed
    with one of the namespace names used by ZFS on supported platforms.

    Allow choosing between legacy illumos and FreeBSD compatibility and
    legacy Linux compatibility with a new tunable.  This facilitates
    replication and migration of pools between hosts with different
    compatibility needs.

    The tunable controls whether or not to prefix the namespace to the
    name.  If the xattr is already present with the alternate prefix,
    remove it so only the new version persists.  By default the platform's
    existing convention is used.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-266112-32464-Nfpwl7iJcL>