2012-03-26 00:16:10 |
Eike |
bug |
|
|
added bug |
2012-03-26 00:16:40 |
Eike |
bug-repo-syncer: milestone |
|
0.3.0 |
|
2012-03-26 00:16:50 |
Eike |
bug-repo-syncer: importance |
Undecided |
Medium |
|
2012-03-26 00:16:55 |
Eike |
bug-repo-syncer: importance |
Medium |
High |
|
2012-03-26 01:13:57 |
Eike |
bug-repo-syncer: status |
New |
Confirmed |
|
2012-03-26 16:24:37 |
Eike |
description |
When a bug task is removed from a project an exception is raised and the
program crashes. This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefor the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
Maybe the architecture of the program can be changed so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
See:
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
|
2012-03-29 23:34:40 |
Eike |
description |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefor the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
Maybe the architecture of the program can be changed so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
See:
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefor the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
Maybe the architecture of the program can be changed so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
'''Done:'''
The error is caught in `LpController.update_bugs` and bugs that could not be
updated are returned.
'''See:'''
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
|
2012-03-29 23:43:32 |
Eike |
description |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefor the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
Maybe the architecture of the program can be changed so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
'''Done:'''
The error is caught in `LpController.update_bugs` and bugs that could not be
updated are returned.
'''See:'''
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception and crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefore the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
'''TODO:'''
Catch the errors in `TracController` and `RepoControllerDummy` and handle them exactly as in `LpController.update_bugs`.
The architecture of the program should be changed, so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
'''Done:'''
The error is caught in `LpController.update_bugs` and bugs that could not be
updated are returned.
'''See:'''
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
|
2012-03-31 11:01:16 |
Eike |
description |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception and crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefore the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
'''TODO:'''
Catch the errors in `TracController` and `RepoControllerDummy` and handle them exactly as in `LpController.update_bugs`.
The architecture of the program should be changed, so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
'''Done:'''
The error is caught in `LpController.update_bugs` and bugs that could not be
updated are returned.
'''See:'''
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception and crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefore the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
'''TODO:'''
The architecture of the program should be changed, so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
'''Done:'''
The error is caught in `LpController.update_bugs`, `TracController` and `RepoControllerDummy`. Bugs that could not be updated are returned, with their fields `id` and `repo_name` set to the correct values.
'''See:'''
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
|
2012-03-31 11:01:38 |
Eike |
bug-repo-syncer: status |
Confirmed |
New |
|
2012-03-31 11:01:42 |
Eike |
bug-repo-syncer: importance |
High |
Medium |
|
2012-03-31 11:01:47 |
Eike |
bug-repo-syncer: milestone |
0.3.0 |
0.4.0 |
|
2012-03-31 11:03:03 |
Eike |
description |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception and crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefore the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
'''TODO:'''
The architecture of the program should be changed, so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
'''Done:'''
The error is caught in `LpController.update_bugs`, `TracController` and `RepoControllerDummy`. Bugs that could not be updated are returned, with their fields `id` and `repo_name` set to the correct values.
'''See:'''
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception and crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefore the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
'''TODO:'''
The architecture of the program should be changed, so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
The damaged bugs should be at least removed form the internal data structures.
'''Done:'''
The error is caught in `LpController.update_bugs`, `TracController` and `RepoControllerDummy`. Bugs that could not be updated are returned, with their fields `id` and `repo_name` set to the correct values.
'''See:'''
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
|
2012-04-01 10:37:24 |
Eike |
description |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception and crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefore the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
'''TODO:'''
The architecture of the program should be changed, so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
The damaged bugs should be at least removed form the internal data structures.
'''Done:'''
The error is caught in `LpController.update_bugs`, `TracController` and `RepoControllerDummy`. Bugs that could not be updated are returned, with their fields `id` and `repo_name` set to the correct values.
'''See:'''
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
In Launchpad a bug task can be removed from a project. From the perspective of Bug Repo Syncer, this means that a bug can suddenly disappear. This confuses the program, it raises an exception and crashes. Something similar can happen in Trac too, as bugs can be deleted there.
Therefore the program should be modified so that deleted bugs don't let the program crash.
However the information that the bug has disappeared (the crash) is only available at the end of the algorithm in `write_bugs.write_bugs`. Therefore a sensible reaction needs a second pass of the algorithm.
'''TODO:'''
The architecture of the program should be changed, so so that there is a general framework for bugs that need a second pass through the algorithm, and a framework for bugs that need special treatment. Similar needs arise for the translation of bug links.
The damaged bugs should be at least removed form the internal data structures.
'''Done:'''
The error is caught in `LpController.update_bugs`, `TracController` and `RepoControllerDummy`. Bugs that could not be updated are returned, with their fields `id` and `repo_name` set to the correct values.
'''See:'''
* TranslateBugLinks
* https://blueprints.launchpad.net/bug-repo-syncer/+spec/translate-bug-links
* Bug #970732 (Framework for Second Pass Through Algorithm and for Special Treatment)
This is the traceback:
{{{
Traceback (most recent call last):
File "/usr/local/bin/bsync", line 31, in <module>
bsync.main()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 120, in main
self.do_sync(cmdinfo)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 373, in do_sync
syncer.synchronize_repos(sync_since, dry_run=False)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1211, in synchronize_repos
self.write_bugs(write_tasks)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1131, in write_bugs
new_ids = pipe.upload_queued_bugs()
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/main.py", line 1320, in upload_queued_bugs
self.repo_controller.update_bugs(self.up_bugs, self.up_ids)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 968, in update_bugs
lp_task = self.find_bug_task(lp_bug)
File "/usr/local/lib/python2.7/site-packages/bug_repo_syncer/repo_io.py", line 921, in find_bug_task
.format(id=lp_bug.id, proj=self.project.name))
KeyError: "Bug 936502 not in 'bug-repo-syncer'."
}}} |
|
2012-04-01 10:37:29 |
Eike |
bug-repo-syncer: milestone |
0.4.0 |
0.5.0 |
|