-
Notifications
You must be signed in to change notification settings - Fork 18.7k
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
Dockerfile*: bump devmapper library version #34362
Conversation
Let's use latest lvm2 sources to compile the libdevmapper library. Initial reason for compiling devmapper lib from sources was a need to have the static version of the library at hand, in order to build the static dockerd, but note that the same headers/solib are used for dynamic build (dynbinary) as well. The reason for this patch is to enable the deferral removal feature. The supplied devmapper library (and headers) are too old, lacking the needed functions, so the daemon is built with 'libdm_no_deferred_remove' build tag (see the check in hack/make.sh). Because of this, even if the kernel dm driver is perfectly able to support the feature, it can not be used. For more details and background story, see [1]. Surely, one can't just change the version number. While at it: - improve the comments; - remove obsoleted URLs; - remove s390 and ppc configure updates that are no longer needed; - use pkg-config instead of hardcoding the flags (newer lib added some more dependencies); [1] moby#34298 Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
The Z failure seems unrelated. |
Thanks for this patch! I was about to prepare a similar update, but mostly motivated by security. The logging of libdm seems to be more verbose as well, which is good as those logs are parsed to detect errors. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
OK so I removed the [WIP], guess it's ready to be merged |
Anybody test this with Docker? |
Are there any test suites or something for graph drivers? The ones I used back in the day (when working on ploop graphdriver) are:
|
I checked that dockerd with this patch works manually, as well as with docker-stress, using devmapper on a real device.
Also, deferred removal now works by default:
Just for the reference, here is the same test using overlayfs gd:
So, I guess @cpuguy83 you can consider it lightly tested, no apparent bugs. |
I just realized the above test does not cover building images, so I did some more testing -- this time by running docker build on top of it, with some docker-stress jobs in parallel. The beast survives. |
@cpuguy83 think it's ready to merge? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Let's use latest lvm2 sources to compile the libdevmapper library.
Initial reason for compiling devmapper lib from sources was a need to
have the static version of the library at hand, in order to build
the static dockerd, but note that the same headers/solib are used
for dynamic build (dynbinary) as well.
The reason for this patch is to enable the deferral removal feature.
The supplied devmapper library (and headers) are too old, lacking the
needed functions, so the daemon is built with 'libdm_no_deferred_remove'
build tag (see the check in hack/make.sh). Because of this, even if the
kernel dm driver is perfectly able to support the feature, it can not
be used. For more details and background story, see #34298
Surely, one can't just change the version number. While at it:
some more dependencies).
PS the version chosen is the one that is supposed to be bundled in RHEL7u4