Modify

Opened 7 years ago

Closed 5 years ago

Last modified 7 weeks ago

#1372 closed defect (duplicate)

[PATCH] crashes if there are non-project directories or other files in directory containing projects

Reported by: zorloff Owned by: coderanger
Priority: high Component: ProjectMenuPlugin
Severity: major Keywords:
Cc: Trac Release: 0.10

Description (last modified by rjollos)

the error is something like this:

Traceback (most recent call last):
  File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 387, in dispatch_request
    dispatcher.dispatch(req)
  File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 208, in dispatch
    chrome.populate_hdf(req, chosen_handler)
  File "/usr/local/lib/python2.5/site-packages/trac/web/chrome.py", line 319, in populate_hdf
    for category, name, text in contributor.get_navigation_items(req):
  File "build/bdist.linux-i686/egg/projectmenu/web_ui.py", line 21, in get_navigation_items
    proj_env = _open_environment(os.path.join(search_path, project))
  File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 58, in _open_environment
    env_cache[env_path] = open_environment(env_path)
  File "/usr/local/lib/python2.5/site-packages/trac/env.py", line 434, in open_environment
    env = Environment(env_path)
  File "/usr/local/lib/python2.5/site-packages/trac/env.py", line 126, in __init__
    self.verify()
  File "/usr/local/lib/python2.5/site-packages/trac/env.py", line 174, in verify
    fd = open(os.path.join(self.path, 'VERSION'), 'r')
IOError: [Errno 2] No such file or directory: '/home/mmm/VERSION'

Attachments (0)

Change History (5)

comment:1 Changed 7 years ago by pj@…

This patch is fairly self explanatory and fixes this bug.

  • projectmenu/web_ui.py

     
    1818         
    1919        for project in os.listdir(search_path): 
    2020            if project != this_project: 
    21                 proj_env = _open_environment(os.path.join(search_path, project)) 
     21               try: 
     22                    proj_env = _open_environment(os.path.join(search_path, project)) 
    2223                 
    23                 proj_elm = tag.OPTION(proj_env.project_name, value=posixpath.join(base_url, project)) 
     24                    proj_elm = tag.OPTION(proj_env.project_name, value=posixpath.join(base_url, project)) 
    2425                 
    25                 projects.append((proj_elm, proj_env.project_name)) 
     26                    projects.append((proj_elm, proj_env.project_name)) 
     27               except IOError: 
     28                   # IOError means there was a problem reading this 
     29                   # potential trac instance - it's probably not really 
     30                   # an instance, so skip it 
     31                   pass   
    2632        projects.sort(lambda a,b: cmp(a[1],b[1])) # Sort on the project names 
    2733        projects.insert(0, (tag.OPTION(self.env.project_name, value=''), None)) 


Last edited 7 weeks ago by rjollos (previous) (diff)

comment:2 Changed 7 years ago by anonymous

I applied this patches on à 0.10 environement and it works perfectly.

thanks

comment:3 Changed 5 years ago by AdrianFritz

  • Resolution set to duplicate
  • Status changed from new to closed
  • Summary changed from crashes if there are non-project directories or other files in directory containing projects to [PATCH] crashes if there are non-project directories or other files in directory containing projects

Seems to be a duplicate of #1301, which also have a [PATCH]. Please reopen if different case.

comment:4 Changed 7 weeks ago by rjollos

  • Description modified (diff)

comment:5 Changed 7 weeks ago by rjollos

In 14053:

2.0dev: Skip directories that aren't Trac environments. Fixes #1301, Refs #1372.

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.