Back to bug 1410154

Who When What Removed Added
Florian Weimer 2017-01-04 15:57:14 UTC Link ID Sourceware 16628
Depends On 1393909
Paulo Andrade 2017-01-04 16:07:04 UTC Summary crash due to not finding libnss_wins.so.2 in getaddrinfo crash due to not finding libnss_wins.so.2 dependencies in getaddrinfo
Deepu K S 2017-01-17 09:31:40 UTC CC dkochuka
Carlos O'Donell 2017-01-19 14:03:57 UTC Assignee codonell glibc-bugzilla
Chris Williams 2017-06-22 18:31:47 UTC CC cww
Blocks 1420851
Carlos O'Donell 2017-07-18 18:32:59 UTC CC codonell
Carlos O'Donell 2017-07-18 18:33:24 UTC Keywords Patch
Chris Williams 2018-03-16 21:14:20 UTC Priority unspecified medium
Blocks 1477664
Kyle Walker 2018-04-04 19:02:02 UTC CC kwalker
Florian Weimer 2018-11-20 09:35:02 UTC Status NEW ASSIGNED
Target Release --- 8.1
Version 7.3 ---
Component glibc glibc
CC dj
Link ID Sourceware 20839
Target Milestone rc pre-dev-freeze
Product Red Hat Enterprise Linux 7 Red Hat Enterprise Linux 8
Florian Weimer 2018-11-20 09:36:30 UTC Summary crash due to not finding libnss_wins.so.2 dependencies in getaddrinfo glibc: Incomplete rollback of dynamic linker state on linking failure
Florian Weimer 2018-11-21 12:01:12 UTC Keywords Patch
John Ruemker 2019-02-27 16:56:12 UTC Blocks 1679810
Chris Williams 2019-03-06 22:38:23 UTC Blocks 1420851, 1477664
Renaud Métrich 2019-05-23 17:56:29 UTC CC rmetrich
Carlos O'Donell 2019-10-01 13:10:23 UTC Blocks 1599298
CC woodard
Carlos O'Donell 2019-10-01 13:11:58 UTC Link ID Red Hat Bugzilla 1395758
Lenka Špačková 2019-10-09 10:05:57 UTC CC lkuprova
Florian Weimer 2019-11-15 14:11:28 UTC Summary glibc: Incomplete rollback of dynamic linker state on linking failure glibc: Incomplete rollback of dynamic linker state on dlopen failure (NODELETE bug)
Florian Weimer 2019-11-28 14:50:51 UTC Depends On 1395758
Sergey Kolosov 2019-11-28 17:23:22 UTC CC skolosov
Matt Newsome 2019-12-02 10:06:53 UTC Keywords Bugfix
Florian Weimer 2019-12-09 13:05:09 UTC Assignee glibc-bugzilla fweimer
Florian Weimer 2019-12-14 08:46:13 UTC Status ASSIGNED MODIFIED
Link ID Sourceware 24304
Fixed In Version glibc-2.28-100.el8
Doc Text Cause: The glibc dynamic linker did not remove some newly-loaded shared objects marked as NODELETE before reporting the error the caller, if the dlopen call eventually failed.

Consequence: Unrelocated, uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes.

Fix: A new pending NODELETE state for newly loaded objects is introduced, and the dynamic loader removes such objects on dlopen failure.

Result: No unrelocated shared objects are left behind. Furthermore, lazy binding failures while ELF constructors and destructors run now terminate the process.
Doc Type If docs needed, set a value Bug Fix
errata-xmlrpc 2019-12-16 13:14:59 UTC Status MODIFIED ON_QA
Lucie Vařáková 2020-01-03 11:49:56 UTC CC lmanasko
Docs Contact sdubewar
Sagar Dubewar 2020-01-13 10:01:53 UTC Doc Text Cause: The glibc dynamic linker did not remove some newly-loaded shared objects marked as NODELETE before reporting the error the caller, if the dlopen call eventually failed.

Consequence: Unrelocated, uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes.

Fix: A new pending NODELETE state for newly loaded objects is introduced, and the dynamic loader removes such objects on dlopen failure.

Result: No unrelocated shared objects are left behind. Furthermore, lazy binding failures while ELF constructors and destructors run now terminate the process.
.Introducing pending NODELETE state for objects on dlopen failure
Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, a newly-introduced pending NODELETE state for newly loaded objects and the dynamic loader removes such objects on dlopen failure. As a result, the process does not leave any unreloacated objects behind. Also, lazy binding failures, while ELF constructors and destructors run now terminate the process.
Flags needinfo?(fweimer)
Florian Weimer 2020-01-13 16:35:18 UTC Flags needinfo?(fweimer)
Sagar Dubewar 2020-01-14 05:17:55 UTC Doc Text .Introducing pending NODELETE state for objects on dlopen failure
Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, a newly-introduced pending NODELETE state for newly loaded objects and the dynamic loader removes such objects on dlopen failure. As a result, the process does not leave any unreloacated objects behind. Also, lazy binding failures, while ELF constructors and destructors run now terminate the process.
.Remove shared objects marked with NODELETE if dlopen fails

Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, a newly-introduced pending NODELETE state for newly loaded objects and the dynamic loader removes such objects on dlopen failure. As a result, the process does not leave any unreloacated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
Flags needinfo?(fweimer)
Florian Weimer 2020-01-16 13:38:59 UTC Flags needinfo?(fweimer)
Florian Weimer 2020-01-16 13:39:46 UTC Link ID Sourceware 25396
Sagar Dubewar 2020-01-16 14:35:50 UTC Doc Text .Remove shared objects marked with NODELETE if dlopen fails

Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, a newly-introduced pending NODELETE state for newly loaded objects and the dynamic loader removes such objects on dlopen failure. As a result, the process does not leave any unreloacated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
.Remove shared objects marked with NODELETE if dlopen fails

Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, a newly-introduced pending NODELETE state for newly loaded objects and the dynamic loader removes such objects on dlopen failure. As a result, the process does not leave any unrelocated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
Flags needinfo?(fweimer)
Florian Weimer 2020-01-16 14:41:39 UTC Flags needinfo?(fweimer)
Florian Weimer 2020-01-17 02:44:06 UTC Status ON_QA MODIFIED
Fixed In Version glibc-2.28-100.el8 glibc-2.28-101.el8
Sagar Dubewar 2020-01-17 08:37:48 UTC Doc Text .Remove shared objects marked with NODELETE if dlopen fails

Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, a newly-introduced pending NODELETE state for newly loaded objects and the dynamic loader removes such objects on dlopen failure. As a result, the process does not leave any unrelocated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
.Remove shared objects marked with NODELETE if dlopen fails

Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, the pending NODELETE state for newly loaded objects, along with the dynamic loader, removes shared objects on dlopen failure. As a result, the process does not leave any unrelocated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
Flags needinfo?(fweimer)
Florian Weimer 2020-01-17 09:46:15 UTC Flags needinfo?(fweimer)
Sagar Dubewar 2020-01-17 09:50:06 UTC Doc Text .Remove shared objects marked with NODELETE if dlopen fails

Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, the pending NODELETE state for newly loaded objects, along with the dynamic loader, removes shared objects on dlopen failure. As a result, the process does not leave any unrelocated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
.Remove shared objects marked with NODELETE if dlopen fails

Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, the dynamic loader uses a pending NODELETE state to remove shared objects upon dlopen failure, before marking them as NODELETE permanently. As a result, the process does not leave any unrelocated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
Flags needinfo?(fweimer)
Florian Weimer 2020-01-17 10:04:30 UTC Flags needinfo?(fweimer)
Sagar Dubewar 2020-01-17 11:12:36 UTC Doc Text .Remove shared objects marked with NODELETE if dlopen fails

Previously, if the dlopen call failed, the glibc dynamic linker did not remove shared objects with the NODELETE mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, the dynamic loader uses a pending NODELETE state to remove shared objects upon dlopen failure, before marking them as NODELETE permanently. As a result, the process does not leave any unrelocated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
.Remove shared objects marked with `NODELETE` if `dlopen` fails

Previously, if the `dlopen` call failed, the `glibc` dynamic linker did not remove shared objects with the `NODELETE` mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, the dynamic loader uses a pending `NODELETE` state to remove shared objects upon `dlopen` failure, before marking them as `NODELETE` permanently. As a result, the process does not leave any unrelocated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
errata-xmlrpc 2020-01-20 16:27:28 UTC Status MODIFIED ON_QA
Lenka Špačková 2020-01-21 12:42:52 UTC CC sdubewar
Flags needinfo?(sdubewar)
Sagar Dubewar 2020-01-22 05:09:00 UTC Doc Text .Remove shared objects marked with `NODELETE` if `dlopen` fails

Previously, if the `dlopen` call failed, the `glibc` dynamic linker did not remove shared objects with the `NODELETE` mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this enhancement, the dynamic loader uses a pending `NODELETE` state to remove shared objects upon `dlopen` failure, before marking them as `NODELETE` permanently. As a result, the process does not leave any unrelocated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
.Unrelocated and uninitialized shared objects no longer result in failures if `dlopen` fails

Previously, if the `dlopen` call failed, the `glibc` dynamic linker did not remove shared objects with the `NODELETE` mark before reporting the error. Consequently, the unrelocated and uninitialized shared objects remained in the process image, eventually resulting in assertion failures or crashes. With this update, the dynamic loader uses a pending `NODELETE` state to remove shared objects upon `dlopen` failure, before marking them as `NODELETE` permanently. As a result, the process does not leave any unrelocated objects behind. Also, lazy binding failures while ELF constructors and destructors run now terminate the process.
Flags needinfo?(lkuprova)
Lenka Špačková 2020-01-22 07:45:20 UTC Flags needinfo?(sdubewar) needinfo?(lkuprova)
Sergey Kolosov 2020-03-16 19:28:23 UTC Status ON_QA VERIFIED
errata-xmlrpc 2020-04-28 00:32:03 UTC Status VERIFIED RELEASE_PENDING
errata-xmlrpc 2020-04-28 16:50:14 UTC Status RELEASE_PENDING CLOSED
Resolution --- ERRATA
Last Closed 2020-04-28 16:50:14 UTC
errata-xmlrpc 2020-04-28 16:50:51 UTC Link ID Red Hat Product Errata RHSA-2020:1828
Red Hat One Jira (issues.redhat.com) 2021-07-10 14:08:03 UTC Link ID Red Hat Issue Tracker RHELPLAN-17581
Pavel Najman 2021-09-17 12:06:46 UTC Pool ID sst_platform_tools_rhel_8 sst_pt_gcc_glibc_rhel_8
Mark O'Brien 2023-07-18 14:30:35 UTC Pool ID sst_pt_glibc_rhel_8 sst_pt_libraries_rhel_8

Back to bug 1410154