# HG changeset patch # User Marcin Kuzminski # Date 2017-10-07 08:33:47 # Node ID 8e19a416641ec202494b72f1d6abd5f09193edc1 # Parent ebe7e2afdf2e1c0841c9ee5686a8df6f8102427b files: protect against 500 errors on nodelist. diff --git a/rhodecode/apps/repository/views/repo_files.py b/rhodecode/apps/repository/views/repo_files.py --- a/rhodecode/apps/repository/views/repo_files.py +++ b/rhodecode/apps/repository/views/repo_files.py @@ -789,11 +789,19 @@ class RepoFilesView(RepoAppView): def _cached_nodes(): log.debug('Generating cached nodelist for %s, %s, %s', repo_name, commit_id, f_path) - _d, _f = ScmModel().get_nodes( - repo_name, commit_id, f_path, flat=False) + try: + _d, _f = ScmModel().get_nodes( + repo_name, commit_id, f_path, flat=False) + except (RepositoryError, CommitDoesNotExistError, Exception) as e: + log.exception(safe_str(e)) + h.flash(safe_str(h.escape(e)), category='error') + raise HTTPFound(h.route_path( + 'repo_files', repo_name=self.db_repo_name, + commit_id='tip', f_path='/')) return _d + _f - cache_manager = self._get_tree_cache_manager(caches.FILE_SEARCH_TREE_META) + cache_manager = self._get_tree_cache_manager( + caches.FILE_SEARCH_TREE_META) cache_key = caches.compute_key_from_params( repo_name, commit_id, f_path)