You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+18-2Lines changed: 18 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ This repository provides a method for working around the sporadic issue seen on
4
4
5
5
If you are running an ubuntu-based system and can upgrade to **version 21.10 (Impish Indri)** this is the safest and easiest way to alleviate the issue, since that version contains glibc v2.34 in which the underlying issue is completely fixed.
6
6
7
-
If instead you want to work around this issue, you can use this repository. It provides a build procedure (in an isolated Docker® container) to produce patched versions of the glibc libraries for recent Ubuntu® and Debian® releases. These patched versions [incorporate an initial fix](https://patchwork.ozlabs.org/project/glibc/patch/[email protected]/) proposed on the [libc-alpha mailing list](https://sourceware.org/mailman/listinfo/libc-alpha) that mitigate the issue. In the release area of this repository you can find the debian package build artefacts produced by running the build on Ubuntu 18.04 & 20.04 as well as Debian 9, 10 & 11. You can install these artefacts on an appropriate debian-based machine, virtual machine or docker container, by using `dpkg -i`.
7
+
If instead you want to work around this issue, you can use this repository. It provides a build procedure (in an isolated Docker® container) to produce patched versions of the glibc libraries for recent Almalinux, Ubuntu® and Debian® releases. These patched versions [incorporate an initial fix](https://patchwork.ozlabs.org/project/glibc/patch/[email protected]/) proposed on the [libc-alpha mailing list](https://sourceware.org/mailman/listinfo/libc-alpha) that mitigate the issue. In the release area of this repository you can find the debian package build artefacts produced by running the build on Ubuntu 18.04 & 20.04 as well as Debian 9, 10 & 11. You can install these artefacts on an appropriate debian-based machine, virtual machine or docker container, by using `dpkg -i`. For Almalinux you cand find the appropriate `rpm's` which should also work on UBI and CentOS containers.
8
8
9
9
## Bug Description
10
10
The [assert failure at concurrent pthread_create and dlopen](https://sourceware.org/bugzilla/show_bug.cgi?id=19329) glibc bug was first reported in December 2015 and can affect any process on Linux that creates a thread at the same time as opening a dynamic shared object library. Initially the issue was only observable with reasonable frequency on very large scale machine systems such as high performance computing clusters or cloud scale deployment platforms and so did not receive significant attention. However, early on there were [proposed patches](https://sourceware.org/bugzilla/show_bug.cgi?id=19329) to the library. Large scale systems applied those patches in-house and saw significant benefit. More recently a [proposed complete fix for this](https://sourceware.org/pipermail/libc-alpha/2021-February/122626.html) and a set of related issues has been reviewed by the glibc team and accepted into version 2.34 of glibc (released in August 2021). The 2.34 version of glibc is available in [RHEL 9 beta](https://developers.redhat.com/articles/2021/11/03/red-hat-enterprise-linux-9-beta-here) and [Ubuntu 21.10 (Impish Indri)](https://launchpad.net/ubuntu/+source/glibc). However, there are no plans to backport the fix into previous glibc versions and it is expected that previous versions will be in production use for a significant number of years (e.g. the current end-of-life date for Ubuntu:20.04 is April 2030).
@@ -50,7 +50,7 @@ libc6:amd64 2.31-0ubuntu9.2
50
50
```
51
51
52
52
## Build procedure
53
-
To build a specific version of glibc on your own machine you will need a version of `docker` that supports `BUILDKIT` (this feature was added in version 18.09). This repository holds patches for all glibc versions from 2.24 to 2.33 inclusive. Running the build process takes between 10 and 60 mins based on the compute ability of your system.
53
+
To build a specific version of glibc on your own machine you will need a version of `docker` that supports `BUILDKIT` (this feature was added in version 18.09). This repository holds patches for all glibc versions on debian derived systems from 2.24 to 2.33 inclusive, as well as a version for RHEL 8 with glibc 2.28. Running the build process takes between 10 and 60 mins based on the compute ability of your system.
54
54
55
55
### Pre-built artefacts
56
56
This repository runs a number of github actions to build artefacts for specific Debian and Ubuntu versions and it is likely that these are all that is needed to patch your system. You can download the matching debian package for your system from the release area.
@@ -71,6 +71,8 @@ This repository runs a number of github actions to build artefacts for specific
71
71
|`ubuntu:18.04`|`ubuntu:bionic`|
72
72
|`ubuntu:20.04`|`ubuntu:focal`|
73
73
|`ubuntu:21.04`|`ubuntu:hirsute`|
74
+
|`almalinux:8.4`||
75
+
|`almalinux:8.5`||
74
76
75
77
Here is an example build command (for `debian:9`):
76
78
```
@@ -87,6 +89,13 @@ libc6_2.28-10.custom_amd64.deb
87
89
libc6_2.31-13+deb11u2.custom_amd64.deb
88
90
```
89
91
92
+
When building for Almalinux you must use the `Dockerfile.rhel` rather than the debian `Dockerfile` so the build command is
If you have access to a RHEL subscription you should be able to adapt the `Dockerfile.rhel` trivially to include the correct repos to support building the sources directly in a `ubi8` container.
98
+
90
99
### Overriding package version string
91
100
The package version extension defaults to `.DIST_BASE.DIST_TAG.custom`, where
92
101
`${DIST_TAG}` defaults to the `VERSION_CODENAME` found in `/etc/os-release`. This version
For your system replace the debian package with the correct version that matches the glibc you already have (see for example the output from `dpkg-query --show libc6:amd64`)
108
117
118
+
Installing the rpms on a UBI / Almalinux system requires you to install several of the packages at once, for example
When building a docker container with a specific patch, assuming the patch is in the top level docker context folder you would have a `Dockerfile` like
0 commit comments