| Summary: | Dependency Calculation takes too long (needs to be revamped) | ||
|---|---|---|---|
| Product: | Red Hat Satellite | Reporter: | Justin Sherrill <jsherril> |
| Component: | WebUI | Assignee: | Tomas Strachota <tstrachota> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Garik Khachikyan <gkhachik> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 6.0.0 | CC: | bkearney, gkhachik, jsherril, mkoci, mmccune, tsanders |
| Target Milestone: | Unspecified | ||
| Target Release: | Unused | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | katello-0.1.96-1.git.15.371d68d | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2012-08-22 18:01:02 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Bug Depends On: | |||
| Bug Blocks: | 747354 | ||
|
Description
Justin Sherrill
2011-10-12 22:20:15 UTC
So there are few aspects of this issue (which probably span more than this bugzilla): a) The above situation which takes 20 minutes to calculate the dependencies for an empty repo being promoted. I'm not sure what is going on here, we need to investigate. The manifest being imported was the one from october 6th. It seems to be quite easy to reproduce, as the dependency calculation always takes ~20 minutes. It should be quite fast when the repo is empty. b) Previously prad had added some additional functionality that we requested but we haven't gone back and added support for it. Here is the bug requesting that change: https://bugzilla.redhat.com/show_bug.cgi?id=721134 basically this allows us to 'trim' parts of the dependency tree when a branch is already satisfied by something in the repos of the next environment. c) Ideally dependency checking should be done asynchronously when the changeset is moved to the review stage. So the process would go like this: 1) User moves changeset to review phase. 2) Dependency task is kicked off as a delayed job 3) When dependency calculation is complete, the results are saved in the db (in a table that doesn't currently exist) 4) i) When the user promotes a changeset, if the dependency calculation is complete, that can be used for the promotion process ii) If the user promotes a changeset and the dependency calculation is not complete, the promotion task would wait for it to complete before continuing. iii) if the user cancels a review of a changeset, the dependency information is discarded, if a current calculation is in progress it is cancelled. Let me know if you have any questions. Tomas: Can you take a look and let me know if the issue is in kaello.. or in pulp? Thanks! -- bk OK, I'll check it. After some debugging it seems that the problem is checking if repositories are cloned to next environment. After we import manifest, there's around 300 repos that are checked one by one during the dep. calc. => 300 rest calls to pulp. I'm going to do some measurement to prove this theory. Why do we do the depdency check at import? I would think we slam it in and not deal with it. We check it before a changeset promotion. Manifest import was only part of reproduce steps. The problem appeared after we imported the manifest that created 300 repositories. Fixed in f05057e6. Dependency calculations for packages from products or repos included in the changeset are skipped now.
commit f05057e636c6391e22f736a6d0f4d9c5aaeb7399
Author: Tomas Strachota <tstrachota>
Date: Tue Oct 25 09:13:00 2011 +0200
dep calc - fixes in displaying the dependencies
# VERIFIED perfect speed of promoting empty repo (not possible to promote a product without a repo) :) Having imported a manifest with a repo enabled from there makes no impact on reviewing/promoting another empty repo to the env. thanks for the fix and the performance shown on there. checked on: --- katello-0.1.237-1.git.7.752d8de.el6.noarch katello-cli-0.1.54-1.git.79.17c365f.el6.noarch candlepin-0.5.17-1.el6.noarch pulp-0.0.265-1.el6.noarch |