Bug 998113
Summary: | [locking] dnf makecache stuck, blocks operation | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Karel Volný <kvolny> |
Component: | dnf | Assignee: | Packaging Maintenance Team <packaging-team-maint> |
Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 19 | CC: | akozumpl, jsilhan, packaging-team-maint, pnemade |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2014-09-09 09:04:06 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: |
Description
Karel Volný
2013-08-17 11:32:29 UTC
This is closely related to the bug 922441. I can only wonder what causes the hang in the makecache process: it is probably a network communication hang but to honestly blame libreport we'd need to catch it red-handed (hopefully this [1] will help it in the future). Leaving this open for now, hoping to reproduce. [1] https://github.com/akozumpl/dnf/commit/d46d2ff51eb274daa73cbbab28a6c8508776b9ba (In reply to Ales Kozumplik from comment #1) > This is closely related to the bug 922441. looking at that ... would that be extremely hard (or undesired) to implement some inter process communication so that the program run by the user would be able to get the status of the one running in background, show the background downloads progress, offer to interrupt the background process, etc.? > I can only wonder what causes the hang in the makecache process: it is probably > a network communication hang but to honestly blame libreport we'd need to catch > it red-handed (hopefully this [1] will help it in the future). ugh, what does libreport has to do with this? (In reply to Karel Volný from comment #2) > looking at that ... would that be extremely hard (or undesired) to implement > some inter process communication so that the program run by the user would > be able to get the status of the one running in background, show the > background downloads progress, offer to interrupt the background process, > etc.? It's a possibility given that both processes belong to the same user. > > > I can only wonder what causes the hang in the makecache process: it is probably > > a network communication hang but to honestly blame libreport we'd need to catch > > it red-handed (hopefully this [1] will help it in the future). > > ugh, what does libreport has to do with this? sorry, I meant 'librepo'. (In reply to Ales Kozumplik from comment #3) > (In reply to Karel Volný from comment #2) > > looking at that ... would that be extremely hard (or undesired) to implement > > some inter process communication so that the program run by the user would > > be able to get the status of the one running in background, show the > > background downloads progress, offer to interrupt the background process, > > etc.? > > It's a possibility given that both processes belong to the same user. well, except for read only operations where you don't need to acquire any locks anyways, does dnf allow other user than root (or someone using sudo to become root)? - I guess "same user" rule would cover 100% cases here ... ... > sorry, I meant 'librepo'. :-) > well, except for read only operations where you don't need to acquire any > locks anyways, does dnf allow other user than root (or someone using sudo to > become root)? - I guess "same user" rule would cover 100% cases here ... > yes, DNF runs under the normal user, it just will fail to do any actual RPM transaction of course. about the read-only locking, you are right, this is one thing I'm considering, please see bug 980227 comment 2. (In reply to Ales Kozumplik from comment #5) > > well, except for read only operations where you don't need to acquire any > > locks anyways, does dnf allow other user than root (or someone using sudo to > > become root)? - I guess "same user" rule would cover 100% cases here ... > > > > yes, DNF runs under the normal user, it just will fail to do any actual RPM > transaction of course. I thought it gains root for cache updates ... > about the read-only locking, you are right, this is one thing I'm > considering, please see bug 980227 comment 2. uh, that seems far in the future ... can something be done about the makecache problem with the current implementatino? Closing this. DNF's metadata cache is heavily built on the idea that there is only one local copy of the repository metadata. If a background process that creates this metadata is stuck it can either be because of: a) a persistent network issue. In that case terminating the background process and running DNF from the command line will result in a stuck operation again. Also, since this has been reported we have tweaked the timeouting values for librepo so eventually all such DNF processes finish or fail with a network error. b) a transient network error. In that case the user best knows what to do and can kill the background process. Again, should not be necessary. c) an actual bug in the DNF/librepo networking code that prevents DNF from terminating successfully or with an error---such should be reported separately and properly debugged. For possibilities of running multiple DNF with multiple caches (using different installroots) see bug 1124316. For a request of blocking DNF executions see bug 1049028. |