Bug 1332917
Summary: | glibc: Deadlock between fflush, getdelim, and fork | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Florian Weimer <fweimer> |
Component: | glibc | Assignee: | Florian Weimer <fweimer> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | arjun.is, codonell, dj, fweimer, jakub, law, mfabian, pfrankli, siddhesh |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | glibc-2.22-15.fc23, glibc-2.23.1-7.fc24 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | 906468 | Environment: | |
Last Closed: | 2016-05-15 04:53:13 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: | |||
Bug Blocks: | 906468 |
Description
Florian Weimer
2016-05-04 11:12:16 UTC
glibc-2.22-15.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-68abc0be35 glibc-2.22-15.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-68abc0be35 Fixed with these new 2.23 backports: commit 888d9a0146b4b8364e065ab359eae5b3db5badb9 Author: Florian Weimer <fweimer> Date: Thu Apr 14 12:53:03 2016 +0200 malloc: Add missing internal_function attributes on function definitions Fixes build on i386 after commit 29d794863cd6e03115d3670707cc873a9965ba92. (cherry picked from commit 186fe877f3df0b84d57dfbf0386f6332c6aa69bc) commit 927170dd59787d9443e07eeb0b22329c4eff1530 Author: Florian Weimer <fweimer> Date: Thu Apr 14 09:18:30 2016 +0200 malloc: Remove malloc hooks from fork handler The fork handler now runs so late that there is no risk anymore that other fork handlers in the same thread use malloc, so it is no longer necessary to install malloc hooks which made a subset of malloc functionality available to the thread that called fork. (cherry picked from commit 8a727af925be63aa6ea0f5f90e16751fd541626b) commit 2a71cf409681b89ffb8892b35cac64de79b7adb8 Author: Florian Weimer <fweimer> Date: Thu Apr 14 09:17:02 2016 +0200 malloc: Run fork handler as late as possible [BZ #19431] Previously, a thread M invoking fork would acquire locks in this order: (M1) malloc arena locks (in the registered fork handler) (M2) libio list lock A thread F invoking flush (NULL) would acquire locks in this order: (F1) libio list lock (F2) individual _IO_FILE locks A thread G running getdelim would use this order: (G1) _IO_FILE lock (G2) malloc arena lock After executing (M1), (F1), (G1), none of the threads can make progress. This commit changes the fork lock order to: (M'1) libio list lock (M'2) malloc arena locks It explicitly encodes the lock order in the implementations of fork, and does not rely on the registration order, thus avoiding the deadlock. (cherry picked from commit 29d794863cd6e03115d3670707cc873a9965ba92) commit a5c2f42566460fc73755c768e8e1c59dbd5a4bb2 Author: Samuel Thibault <samuel.thibault> Date: Tue Mar 22 09:58:48 2016 +0100 Fix malloc threaded tests link on non-Linux * malloc/Makefile ($(objpfx)tst-malloc-backtrace, $(objpfx)tst-malloc-thread-exit, $(objpfx)tst-malloc-thread-fail): Use $(shared-thread-library) instead of hardcoding the path to libpthread. (cherry picked from commit b87e41378beca3c98ec3464d64835e66cc788497) commit f69ae17e843b00d3495b736f4381c1fa64dc02bc Author: Florian Weimer <fweimer> Date: Fri Feb 19 17:07:45 2016 +0100 malloc: Remove NO_THREADS No functional change. It was not possible to build without threading support before. (cherry picked from commit 59eda029a8a35e5f4e5cd7be0f84c6629e48ec6e) glibc-2.23.1-6.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-b321728d74 glibc-2.22-15.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report. glibc-2.23.1-6.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-b321728d74 glibc-2.23.1-7.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-b321728d74 glibc-2.23.1-7.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-b321728d74 glibc-2.23.1-7.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report. |