Edgewall Software

Opened 15 years ago

Last modified 8 years ago

#387 new defect

strange isolated backtrace originating in template.interpolation.lex

Reported by: cboos Owned by: cmlenz
Priority: minor Milestone: 0.9
Component: Template processing Version: 0.6
Keywords: weird Cc: guillaume@…

Description

Found in the trac.log from a few days ago:

[pid  1100343632] 2010-05-09 06:32:44,668 Trac[env] INFO: -------------------------------- environment startup [Trac 0.12dev-r9640] --------------------------------
[pid  1092462928] 2010-05-09 06:32:44,760 Trac[env] INFO: -------------------------------- environment startup [Trac 0.12dev-r9640] --------------------------------
[pid  1228458320] 2010-05-09 06:33:26,063 Trac[env] WARNING: base_url option not set in configuration, generated links may be incorrect
[pid  1209448784] 2010-05-09 06:33:26,114 Trac[env] WARNING: base_url option not set in configuration, generated links may be incorrect
[pid  1167485264] 2010-05-09 06:33:31,058 Trac[api] WARNING: Discarding duplicate repository ''
[pid  1125521744] 2010-05-09 06:33:41,200 Trac[main] ERROR: Internal Server Error:
Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 512, in _dispatch_request
    dispatcher.dispatch(req)
  File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 255, in dispatch
    content_type)
  File "build/bdist.linux-x86_64/egg/trac/web/chrome.py", line 832, in render_template
    stream = template.generate(**data)
  File "build/bdist.linux-x86_64/egg/genshi/template/base.py", line 532, in generate
    stream = self.stream
  File "build/bdist.linux-x86_64/egg/genshi/template/base.py", line 442, in stream
    self._stream = list(self._prepare(self._stream))
  File "build/bdist.linux-x86_64/egg/genshi/template/base.py", line 478, in _prepare
    yield kind, (directives, list(substream)), pos
  File "build/bdist.linux-x86_64/egg/genshi/template/base.py", line 478, in _prepare
    yield kind, (directives, list(substream)), pos
  File "build/bdist.linux-x86_64/egg/genshi/template/base.py", line 478, in _prepare
    yield kind, (directives, list(substream)), pos
  File "build/bdist.linux-x86_64/egg/genshi/template/base.py", line 493, in _prepare
    for event in tmpl.stream:
  File "build/bdist.linux-x86_64/egg/genshi/template/base.py", line 442, in stream
    self._stream = list(self._prepare(self._stream))
  File "build/bdist.linux-x86_64/egg/genshi/template/markup.py", line 288, in _prepare
    self._extract_includes(self._interpolate_attrs(stream))
  File "build/bdist.linux-x86_64/egg/genshi/template/markup.py", line 210, in _extract_includes
    for kind, data, pos in stream:
  File "build/bdist.linux-x86_64/egg/genshi/template/markup.py", line 278, in _interpolate_attrs
    pos[2], lookup=self.lookup))
  File "build/bdist.linux-x86_64/egg/genshi/template/interpolation.py", line 69, in interpolate
    for is_expr, chunk in chain(lex(text, pos, filepath), [(True, '')]):
  File "build/bdist.linux-x86_64/egg/genshi/template/interpolation.py", line 106, in lex
    offset = text.find(PREFIX, pos)
AttributeError: 'list' object has no attribute 'find'

This was for a request to #T4824, but that page doesn't seem to have any problem now.

Note that this was right after a restart of the environment, so that could well be related to the TemplateLoader not being fully initialized, a concurrency issue there.

(+ please add a 0.6 Version)

Change History (3)

comment:1 in reply to: ↑ description Changed 15 years ago by cmlenz

  • Version set to 0.6

Replying to cboos:

(+ please add a 0.6 Version)

Oops, done.

comment:2 Changed 13 years ago by Guillaume Pratte <guillaume@…>

  • Cc guillaume@… added

I had exactly the same stacktrace.

In my case, the "text" variable content is a list :

 [('EXPR', Expression(u"env['paste.config']['sitePath']"), (u'site/main.html', 320, 14)), ('TEXT', u'/index.html?lang=en', (u'site/main.html', 320, 45))] 

In main.html, I have :

            <xi:include href="includes/languages.inc.html"><xi:fallback>
              <a href="${env['paste.config']['sitePath']}/index.html?lang=en" rel="external">
                 EN 
              </a>  
              /
              
              <a href="${env['paste.config']['sitePath']}/index.html?lang=fr" rel="external">
                 FR 
              </a>
            </xi:fallback></xi:include>

It seems ${} expressions are not properly evaluated inside a <xi:fallback> tag?

comment:3 Changed 8 years ago by hodgestar

  • Milestone changed from 0.7 to 0.9

Moved to milestone 0.9.

Note: See TracTickets for help on using tickets.