Bug 1185868
| Summary: | Errata unit copy with recursive copy and dep solve causes worker to balloon memory usage and never free | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Retired] Pulp | Reporter: | Justin Sherrill <jsherril> | ||||
| Component: | rpm-support | Assignee: | Chris Duryee <cduryee> | ||||
| Status: | CLOSED UPSTREAM | QA Contact: | pulp-qe-list | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 2.5 | CC: | cduryee, mhrivnak, skarmark | ||||
| Target Milestone: | --- | Keywords: | Reopened, Triaged | ||||
| Target Release: | 2.6.1 | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | |||||||
| : | 1185869 (view as bug list) | Environment: | |||||
| Last Closed: | 2015-02-28 23:21:22 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: | 1185869 | ||||||
| Attachments: |
|
||||||
|
Description
Justin Sherrill
2015-01-26 13:54:50 UTC
The errata in this example was: RHBA-2014:1965 repro steps: create and sync a rhel6 repo create a second empty rpm repo (copyrepo in this case) run this: pulp-admin rpm repo copy errata --from-repo-id el6 --to-repo-id copyrepo --str-eq="id=RHBA-2014:1965" --recursive This will either OOM or hold onto a lot of memory. I was not able to get this to repro with 4GB mem on 2.6.0. The repo copy (sans "fields" attribute) ate a lot of mem but gave it up at the end of the operation. If you still have the 2.5.x system that exhibits this behavior, we can take a look at it tomorrow. Justin, I did further research on this yesterday and today. I set up the following scenarios, all with python 2.6: * copy an erratum from RHEL 6.6 to 6.1 * copy an erratum for RHEL 5.11 to 5.6 Both of these make the memory usage grow, but it appears to be stable after growing. I assume this is from cPython not calling free() after performing these operations. I'm going to mark this as CLOSED/NOTABUG since we already have a BZ to fix the underlying issue (https://bugzilla.redhat.com/show_bug.cgi?id=1158545). If the amount of memory in this particular scenario becomes problematic (OOMs, etc), let us know and we can try to come up with a workaround. FWIW I was not able to get it to OOM on a 4GB machine. reopening bz merged to 2.6-dev and master QE note to repro: comment #2 is incorrect, the first repo needs to be RHEL 6.6 and the second RHEL 6.1. After that, copying with --recursive should do the trick. Created attachment 991413 [details]
reproducer script
This is the script I was using to reproduce the problem. Note the comments at the top that tell you what repos you need to sync before running it.
If you use this on rhel6, you'll have to modify the "systemctl" statement accordingly.
Moved to https://pulp.plan.io/issues/676 |