It appears that the allura.tasks.repo_tasks.clone task flushes the Project record at the end, and since that task can take a very long time, any updates (e.g. to project description) get lost when it saves the old project document back to mongo.
I haven't duplicated this in development, but here's what happened on sourceforge:
import_project_info task ran at 2013/12/17 04:54:38 https://sourceforge.net/nf/admin/task_manager/view/52afd90dc4314373398546adI didn't find any other tasks with the specific project_id that completed after 06:07:16, so I believe it's the repo clone task at fault.
allura:cj/7005forgehg:cj/7005I tried and failed to come up with a way to create a test case for this; since the tests use MIM, there's no way to do an "out-of-band" update to ensure it doesn't get overwritten.
To QA:
Add a breakpoint to, e.g.,
forgegit.model.git_repo.GitImplementation.clone_fromthen start a clone of a repo (or just clone a large repo w/o a breakpoint). While it's processing, update something on the project metadata, such as the summary.May want to try with the breakpoint in a few different points in the code (start of the task,
clone_from,repo_refresh, end of task).Lots of failures like this:
====================================================================== ERROR: test_refresh_commit (forgegit.tests.test_tasks.TestGitTasks) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/tvansteenburgh/tvansteenburgh-1024/forge/ForgeGit/forgegit/tests/test_tasks.py", line 47, in test_refresh_commit repo_tasks.refresh() File "/home/tvansteenburgh/tvansteenburgh-1024/forge/Allura/allura/tasks/repo_tasks.py", line 77, in refresh c.app.repo.refresh() File "/home/tvansteenburgh/tvansteenburgh-1024/forge/Allura/allura/model/repository.py", line 579, in refresh self.set_status('ready') File "/home/tvansteenburgh/tvansteenburgh-1024/forge/Allura/allura/model/repository.py", line 622, in set_status session(c.project).flush(c.project) AttributeError: 'NoneType' object has no attribute 'flush'Rebased and force-pushed to:
allura:cj/7005