Bug 1702539
| Summary: | glibc: Fix hang in pldd | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | Florian Weimer <fweimer> |
| Component: | glibc | Assignee: | Patsy Griffin <pfrankli> |
| Status: | CLOSED ERRATA | QA Contact: | qe-baseos-tools-bugs |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 8.1 | CC: | ashankar, codonell, dj, fweimer, mnewsome, pfrankli, skolosov |
| Target Milestone: | rc | Keywords: | Patch |
| Target Release: | 8.1 | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | glibc-2.28-56.el8 | Doc Type: | No Doc Update |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2019-11-05 21:29:05 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1361689 | ||
| Bug Blocks: | 1684553 | ||
| Deadline: | 2019-05-22 | ||
Verified, pldd doesn't hang in glibc-2.28-56.el8 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2019:3513 |
In order to have a working pldd, we need to backport this upstream commit: commit 1a4c27355e146b6d8cc6487b998462c7fdd1048f Author: Adhemerval Zanella <adhemerval.zanella> Date: Thu Apr 11 18:12:00 2019 -0300 elf: Fix pldd (BZ#18035) Since 9182aa67994 (Fix vDSO l_name for GDB's, BZ#387) the initial link_map for executable itself and loader will have both l_name and l_libname->name holding the same value due: elf/dl-object.c 95 new->l_name = *realname ? realname : (char *) newname->name + libname_len - 1; Since newname->name points to new->l_libname->name. This leads to pldd to an infinite call at: elf/pldd-xx.c The test depends on <support/subprocess.h> from this commit: commit 0e169691290a6d2187a4ff41495fc5678cbfdcdc Author: Adhemerval Zanella <adhemerval.zanella> Date: Fri Apr 12 17:39:53 2019 -0300 support: Add support_capture_subprogram Its API is similar to support_capture_subprocess, but rather creates a new process based on the input path and arguments. Under the hoods it uses posix_spawn to create the new process. It also allows the use of other support_capture_* functions to check for expected results and free the resources.