New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
daemon/graphdriver/btrfs/btrfs.go args.lim.max_referenced undefined #44698
Comments
Thanks for reporting! Hm... from that commit (kdave/btrfs-progs@0345143);
Looks like they missed that it was used in this repository (at least; it's possible other runtimes may be using it as well). I see use of it was added for quota support in 401c8d1 (#19651) That will be a tricky one; I don't think we can easily change the code to match the new version (as we need to build for various distros, most of which will still have the older btrfs-progs). @kdave @josefbacik any suggestions how to keep it backward compatible? |
Closes: moby#44698 Signed-off-by: Shengjing Zhu <zhsj@debian.org>
Closes: moby#44698 Signed-off-by: Shengjing Zhu <zhsj@debian.org> (cherry picked from commit ffbbe3d) Signed-off-by: Shengjing Zhu <zhsj@debian.org>
Closes: moby#44698 Signed-off-by: Shengjing Zhu <zhsj@debian.org> (cherry picked from commit ffbbe3d) Signed-off-by: Shengjing Zhu <zhsj@debian.org>
@thaJeztah This change will be reverted in the next btrfs-progs bugfix release (v6.1.1): https://lore.kernel.org/linux-btrfs/20230103113941.GN11562@twin.jikos.cz/ |
FYI, the (correct) longer-term fix is to move to |
Thanks for the heads-up @Conan-Kudo - appreciated! ❤️ We had some discussion about what headers would be best to use, and why we were not using the kernel headers (that last part we tracked down to support for RHEL7, which had experimental support for BTRFS, but (I think) not in the kernel headers of the kernel version used - @corhere or @neersighted did some digging into options). |
Indeed, the plan is to depend on the kernel uAPI here, which exposes the fields we currently use. That being said, libbtrfsutil is good to keep in mind if we need to depend on functionality not in the uAPI in the future (e.g. userspace code). |
using the kernel uAPI directly tends to be problematic since the btrfs-progs keeps a copy of the latest interfaces with backwards compatibility for older kernels, whereas the uAPI headers in the kernel lack this. |
That's true -- however the only kernel without the fields we currently need is EL 7's 3.10-based kernel. In the case of a EL 7 system, newer kernel headers can be used, or one can simply not compile the Btrfs graphdriver (which should be preferred as all EL 7 vendors shipping a Red Hat-compatible kernel have deprecated support; OL 7 users on the UEK will have the correct uAPI headers available). If this situation changes and header availability is more of a concern, we'll likely depend on the userspace versions again. |
By relying on the kernel UAPI (userspace API), we can drop a dependency and simplify building Moby, while also ensuring that we are using a stable/supported source of the C types and defines we need. btrfs-progs mirrors the kernel headers, but the headers it ships with are not the canonical source and as [we have seen before][44698], could be subject to changes. Depending on the canonical headers from the kernel both is more idiomatic, and ensures we are protected by the kernel's promise to not break userspace. [44698]: moby#44698 Signed-off-by: Bjorn Neergaard <bneergaard@mirantis.com>
By relying on the kernel UAPI (userspace API), we can drop a dependency and simplify building Moby, while also ensuring that we are using a stable/supported source of the C types and defines we need. btrfs-progs mirrors the kernel headers, but the headers it ships with are not the canonical source and as [we have seen before][44698], could be subject to changes. Depending on the canonical headers from the kernel both is more idiomatic, and ensures we are protected by the kernel's promise to not break userspace. [44698]: moby#44698 Signed-off-by: Bjorn Neergaard <bneergaard@mirantis.com>
By relying on the kernel UAPI (userspace API), we can drop a dependency and simplify building Moby, while also ensuring that we are using a stable/supported source of the C types and defines we need. btrfs-progs mirrors the kernel headers, but the headers it ships with are not the canonical source and as [we have seen before][44698], could be subject to changes. Depending on the canonical headers from the kernel both is more idiomatic, and ensures we are protected by the kernel's promise to not break userspace. [44698]: moby#44698 Signed-off-by: Bjorn Neergaard <bneergaard@mirantis.com>
By relying on the kernel UAPI (userspace API), we can drop a dependency and simplify building Moby, while also ensuring that we are using a stable/supported source of the C types and defines we need. btrfs-progs mirrors the kernel headers, but the headers it ships with are not the canonical source and as [we have seen before][44698], could be subject to changes. Depending on the canonical headers from the kernel both is more idiomatic, and ensures we are protected by the kernel's promise to not break userspace. [44698]: moby#44698 Signed-off-by: Bjorn Neergaard <bneergaard@mirantis.com>
By relying on the kernel UAPI (userspace API), we can drop a dependency and simplify building Moby, while also ensuring that we are using a stable/supported source of the C types and defines we need. btrfs-progs mirrors the kernel headers, but the headers it ships with are not the canonical source and as [we have seen before][44698], could be subject to changes. Depending on the canonical headers from the kernel both is more idiomatic, and ensures we are protected by the kernel's promise to not break userspace. [44698]: moby#44698 Signed-off-by: Bjorn Neergaard <bneergaard@mirantis.com> (cherry picked from commit 3208dca) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Description
While building docker-20.10.22 on Funtoo linux with btrfs-progs 6.1, got this error
Reproduce
Expected behavior
Build not fail.
docker version
docker info
Additional Info
Only fails with btrfs-progs 6.1, with previous versions (6.0.x) builds ok.
IMHO the change of btrfs-progs that caused this affect is
kdave/btrfs-progs@0345143
The text was updated successfully, but these errors were encountered: