Opened 16 years ago
Closed 11 years ago
#4471 closed defect (duplicate)
StopIteration error with some repositories
Reported by: | anonymous | Owned by: | Emmanuel Blot |
---|---|---|---|
Priority: | normal | Component: | RevtreePlugin |
Severity: | normal | Keywords: | |
Cc: | Trac Release: | 0.11 |
Description
We run a number of trac projects and have installed this plugin so that it can be used in any of them. In one of the projects it seems to work fine, but in another project I always get the following error messages:
Trac detected an internal error:
StopIteration:
Python Traceback Most recent call last:
- File "/usr/lib/python2.4/site-packages/Trac-0.11.2.1-py2.4.egg/trac/web/main.py", line 432, in _dispatch_request
- File "/usr/lib/python2.4/site-packages/Trac-0.11.2.1-py2.4.egg/trac/web/main.py", line 204, in dispatch
- File "build/bdist.linux-x86_64/egg/revtree/web_ui.py", line 246, in process_request
- File "build/bdist.linux-x86_64/egg/revtree/web_ui.py", line 356, in _process_revtree
- File "build/bdist.linux-x86_64/egg/revtree/model.py", line 446, in build
- File "build/bdist.linux-x86_64/egg/revtree/model.py", line 51, in get_chgset_info
Regards, Dan
Attachments (0)
Change History (8)
comment:1 Changed 16 years ago by
comment:2 Changed 16 years ago by
Well, the repository is for a commercial software product and so I cannot just post changeset data here in the public domain.
Perhaps you could give me some information such that I could locate what might be the cause myself. For a start I do not know how far back the plugin is looking (it would be the default setting I guess since it has been displaying this error ever since enabling it). Is it likely to be something in the commit logs themselves that is causing the problem?
comment:3 Changed 16 years ago by
Ok, I've made some progress. I checked out the plugin myself and modified it slightly. It seems that the plugin was getting itself mixed up for that particular repository on its initial attempt to render the graph, once I could get it past that first failed attempt it seemed to work normally. The method I used to get it past that first failure was as follows:
In the file "model.py", function "get_chgset_info" (around line 51) there is a call to "chgit.next()", but if "chgit" happens to be empty the call will throw an exception which is not caught by the plugin. By adding a try/except around the call and if it throws the StopIteration exception then simply return an empty "info" array, it allows the plugin to continue functioning normally.
Example:
def get_chgset_info(tracchgset): info = {} chgit = tracchgset.get_changes() try: item = chgit.next() except StopIteration: return info try: chgit.next() except StopIteration: info['unique'] = True else: # more changes are available, i.e. this is not a simple changeset info['unique'] = False enum = ('path', 'kind', 'change', 'base_path', 'base_rev') for (pos, name) in enumerate(enum): info[name] = item[pos] return info
Hope this helps!
Regards, Dan
comment:4 Changed 16 years ago by
Hi think this error occurs if an empty revision (produced by filtering a dumpfile) is rendered. See ticket #4763.
comment:6 Changed 16 years ago by
I'm also having this problem, but I'm reluctant to patch my plugin. If the fix proposed by Dan really fixes the issue I'd love to see it included in the distribution.
comment:7 Changed 15 years ago by
I'm getting this error with the latest version 0.6.3.xx on Trac 0.11.5 on a changeset where a user deleted files, but trac indicates that there are no changes. Any fix for this?
comment:8 Changed 11 years ago by
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Duplicated/tracked as #9231
Would you have a log of the related changesets to help understanding the issue?