#790: Expansion of log TracLinks fails for changeset hash ID
---------------------+--------------------
  Reporter:  olemis  |    Owner:
      Type:  defect  |   Status:  new
  Priority:  major   |  Version:  0.8.0dev
Resolution:          |
---------------------+--------------------
 ==== How to Reproduce ====

 While doing a POST operation on `/ticket/300`, Trac issued an internal
 error.
 Changeset IDs belong in a mercurial repository .

 This happened while expanding the TracLinks expression in `edited_comment`
 below.

 Request parameters:
 {{{
 {'__FORM_TOKEN': u'aeaea20ec38330adabe8f4d5',
  'cnum_edit': u'4',
  'edited_comment': u'Options for format clause implemented in
 log:tracgviz@4d00cd2:233a8bb .',
  'id': u'300',
  'preview_comment': u'Preview'}
 }}}

 User agent: `Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16`

 ==== System Information ====
 || '''`Trac`''' || `1.0.1` [[br]] `` ||
 || '''`Babel`''' || `0.9.6` ||
 || '''`Bloodhound Trac`''' || `1.0.1` ||
 || '''`Genshi`''' || `0.7 (with speedups)` ||
 || '''`Mercurial`''' || `2.6.2` ||
 || '''`mod_wsgi`''' || `3.3 (WSGIProcessGroup bloodhound_net
 WSGIApplicationGroup %{GLOBAL})` ||
 || '''`psycopg2`''' || `2.5` ||
 || '''`Pygments`''' || `1.6` ||
 || '''`Python`''' || `2.7.3 (default, Aug  1 2012, 05:25:23) ` [[br]]
 `[GCC 4.6.3]` ||
 || '''`pytz`''' || `2013b` ||
 || '''`RPC`''' || `1.1.2` ||
 || '''`setuptools`''' || `0.6` ||
 || '''`jQuery`''' || `1.7.2` ||

 ==== Enabled Plugins ====
 || '''`BloodhoundDashboardPlugin`''' || `0.8.0dev` ||
 || '''`BloodhoundLabs`''' || `0.1.0` ||
 || '''`BloodhoundMultiProduct`''' || `0.8.0dev` ||
 || '''`BloodhoundRelationsPlugin`''' || `0.8.0dev` ||
 || '''`BloodhoundRPC`''' || `1.1.2` ||
 || '''`BloodhoundSearchPlugin`''' || `0.8.0dev` ||
 || '''`BloodhoundTheme`''' || `0.8.0dev` ||
 || '''`TracAccountManager`''' || `0.4.3` ||
 || '''`TracGViz`''' || `1.4.2` ||
 || '''`TracIncludeMacro`''' || `3.0.0dev` ||
 || '''`TracMercurial`''' || `1.0.0.3dev` ||
 || '''`TracPermRedirect`''' || `3.0` ||
 || '''`TracThemeEngine`''' || `2.2.2dev-r13718` ||
 || '''`TracTocMacro`''' || `11.0.0.3` ||

 ==== Python Traceback ====
 {{{
 Traceback (most recent call last):
   File "/path/to/bh//trac/trac/web/main.py", line 477, in
 _dispatch_request
     dispatcher.dispatch(req)
   File "/path/to/bh//trac/trac/web/main.py", line 233, in dispatch
     content_type)
   File "/path/to/bh//trac/trac/web/chrome.py", line 1019, in
 render_template
     encoding='utf-8')
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/core.py", line 184, in render
     return encode(generator, method=method, encoding=encoding, out=out)
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/output.py", line 58, in encode
     for chunk in iterator:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/output.py", line 350, in __call__
     for kind, data, pos in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/output.py", line 829, in __call__
     for kind, data, pos in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/output.py", line 669, in __call__
     for kind, data, pos in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/output.py", line 774, in __call__
     for kind, data, pos in chain(stream, [(None, None, None)]):
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/output.py", line 594, in __call__
     for ev in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/core.py", line 289, in _ensure
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/core.py", line 289, in _ensure
     for event in stream:
   File "/path/to/bh//trac/trac/web/chrome.py", line 1156, in
 _strip_accesskeys
     for kind, data, pos in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/core.py", line 289, in _ensure
     for event in stream:
   File "/path/to/bh//trac/trac/web/chrome.py", line 1145, in _generate
     for kind, data, pos in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/core.py", line 289, in _ensure
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/core.py", line 289, in _ensure
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 706, in _unmark
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 974, in __call__
     for mark, (kind, data, pos) in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 734, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 799, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 974, in __call__
     for mark, (kind, data, pos) in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 734, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 799, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 1195, in __call__
     for mark, (kind, data, pos) in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 734, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 799, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 734, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 702, in _mark
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/core.py", line 289, in _ensure
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 706, in _unmark
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 974, in __call__
     for mark, (kind, data, pos) in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 734, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 799, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 974, in __call__
     for mark, (kind, data, pos) in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 734, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 799, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 1195, in __call__
     for mark, (kind, data, pos) in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 734, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 799, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 734, in __call__
     for mark, event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/filters/transform.py", line 702, in _mark
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/base.py", line 618, in _include
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/markup.py", line 378, in _match
     ctxt, start=idx + 1, **vars):
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/markup.py", line 378, in _match
     ctxt, start=idx + 1, **vars):
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/markup.py", line 362, in _match
     content = list(content)
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/base.py", line 618, in _include
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/markup.py", line 326, in _match
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/markup.py", line 315, in _strip
     event = next()
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/base.py", line 558, in _flatten
     for kind, data, pos in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/core.py", line 289, in _ensure
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/path.py", line 588, in _generate
     subevent = next()
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/base.py", line 618, in _include
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/markup.py", line 315, in _strip
     event = next()
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/base.py", line 558, in _flatten
     for kind, data, pos in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/core.py", line 289, in _ensure
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/path.py", line 588, in _generate
     subevent = next()
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/base.py", line 618, in _include
     for event in stream:
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/markup.py", line 315, in _strip
     event = next()
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/base.py", line 578, in _flatten
     result = _eval_expr(data, ctxt, vars)
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/base.py", line 289, in _eval_expr
     retval = expr.evaluate(ctxt)
   File "/path/to/bh//trac/Genshi-0.7-py2.7-linux-
 x86_64.egg/genshi/template/eval.py", line 177, in evaluate
     return eval(self.code, _globals, {'__data__': data})
   File
 "/path/to/bh//bloodhound_theme/bhtheme/templates/bh_ticket_change.html",
 line 106, in <Expression u'wiki_to_html(context, text,
 escape_newlines=preserve_newlines)'>
     ${wiki_to_html(context, text, escape_newlines=preserve_newlines)}
   File "/path/to/bh//trac/trac/wiki/formatter.py", line 1546, in
 format_to_html
     return HtmlFormatter(env, context, wikidom).generate(escape_newlines)
   File "/path/to/bh//trac/trac/wiki/formatter.py", line 1501, in generate
     escape_newlines)
   File "/path/to/bh//trac/trac/wiki/formatter.py", line 1283, in format
     result = re.sub(self.wikiparser.rules, self.replace, line)
   File "/usr/lib/python2.7/re.py", line 151, in sub
     return _compile(pattern, flags).sub(repl, string, count)
   File "/path/to/bh//trac/trac/wiki/formatter.py", line 1201, in replace
     replacement = self.handle_match(fullmatch)
   File "/path/to/bh//trac/trac/wiki/formatter.py", line 1197, in
 handle_match
     return internal_handler(match, fullmatch)
   File "/path/to/bh//trac/trac/wiki/formatter.py", line 584, in
 _shref_formatter
     return self._make_link(ns, target, match, match, fullmatch)
   File "/path/to/bh//trac/trac/wiki/formatter.py", line 635, in _make_link
     fullmatch)
   File "/path/to/bh//trac/trac/versioncontrol/web_ui/log.py", line 393, in
 _format_link
     revranges = self._normalize_ranges(repos, path, revs)
   File "/path/to/bh//trac/trac/versioncontrol/web_ui/log.py", line 436, in
 _normalize_ranges
     return Ranges(ranges)
   File "/path/to/bh//trac/trac/util/__init__.py", line 823, in __init__
     self.appendrange(r)
   File "/path/to/bh//trac/trac/util/__init__.py", line 841, in appendrange
     a, b = int(x), int(x)
 ValueError: invalid literal for int() with base 10:
 '4d00cd2713712ca230080dbbda24d0d25540d0fe-
 233a8bbebb2c77c607661767c03689512a16637f'
 }}}

-- 
Ticket URL: <https://issues.apache.org/bloodhound/ticket/790>
Apache Bloodhound <https://issues.apache.org/bloodhound/>
The Apache Bloodhound issue tracker

Reply via email to