Bug 901510
Summary: | Do not let RPM play with (ch)root of the running process if DNF is used used as a library | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Vratislav Podzimek <vpodzime> |
Component: | dnf | Assignee: | Packaging Maintenance Team <packaging-team-maint> |
Status: | CLOSED DEFERRED | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 19 | CC: | admiller, akostadi, awilliam, ffesti, g.kaviyarasu, gustavold, jonathan, jreiser, jreznik, jsilhan, jstodola, jzeleny, kparal, mbanas, msivak, nalin, pmatilai, robatino, sbueno, tim.lauridsen, tmraz, vanmeeuwen+fedora |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | 893093 | Environment: | |
Last Closed: | 2014-11-19 11:46:19 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: | 876716, 893093 | ||
Bug Blocks: |
Description
Vratislav Podzimek
2013-01-18 10:59:50 UTC
We discussed this with Vratislav today. The goal is to have DNF run RPM as a separate process so its chroot() calls do not affect other threads of the client application. Hi Martin, Is this really a blocker for f19 (dnf is still not used by anaconda in F19) or rhel7? Thanks, Ales The original bug is reported against yum, because anaconda used yum for F18. I'm not sure why this one is reported against dnf. Because in the future it will be relevant. Ales, I just added this bug to our Fedora tracker, so that RTT is aware of it. (removing fedora19rtt blocker, this bug is definitely not going to block F19 in any way) This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle. Changing version to '19'. (As we did not run this process for some time, it could affect also pre-Fedora 19 development cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.) More information and reason for this action is here: https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19 Since I'm starting to work on a DNF payload for Anaconda I will be fixing this in some way sooner or later. This can not be corrected on the RPM level, one of the reasons is that the package hooks expect to be chrooted when invoked. After a brief discussion with the Packaging Tools Team today I am proposing to fix this in DNF: have a configuration option in DNF making it run the RPM transaction itself in a forked process. The main problem then is communicating the transaction progress back to the the original process. We can not support the current callback interface fully, as that would require us to serialize and deserialize/re-build package header objects which is not technically possible at the moment. The answer to this will be a simpler interface, yet with enough information so the client app (Anaconda) can report progress/failures. (In reply to Ales Kozumplik from comment #8) > Since I'm starting to work on a DNF payload for Anaconda I will be fixing > this in some way sooner or later. Thanks a lot! > > This can not be corrected on the RPM level, one of the reasons is that the > package hooks expect to be chrooted when invoked. > > After a brief discussion with the Packaging Tools Team today I am proposing > to fix this in DNF: have a configuration option in DNF making it run the RPM > transaction itself in a forked process. The main problem then is > communicating the transaction progress back to the the original process. We > can not support the current callback interface fully, as that would require > us to serialize and deserialize/re-build package header objects which is not > technically possible at the moment. The answer to this will be a simpler > interface, yet with enough information so the client app (Anaconda) can > report progress/failures. I think a simpler interface would be enough for the installer. To get a notion on what we need, please have a look at the script [1] we use now to run yum in a separate process and the installation method [2] that processes its output. [1] https://git.fedorahosted.org/cgit/anaconda.git/tree/scripts/anaconda-yum [2] https://git.fedorahosted.org/cgit/anaconda.git/tree/pyanaconda/packaging/yumpayload.py#n1549 We would be really glad to remove these "pieces of magic" from our codebase. We don't plan to work on this bug now. There will be huge changes across RPM. |