Hi all !

Sorry for the delay . I was trying to make some research to determine
the cause of this issue

On Wed, Jan 18, 2012 at 7:59 PM, Remy Blank <remy.bl...@pobox.com> wrote:
> Gary wrote:
>> Traceback (most recent call last):
>>    File "/home/trac/projects/trac/trac-trunk/trac/web/api.py", line 498, in 
>> send_error
>>      data, 'text/html')
>
> This looks like a secondary error that happens while trying to render
> the error page. On that page, we have the list of components, and that
> one requires the component to be initialized. Which is kind of difficult
> if the initial error happens during initialization...
>

No, that happens when ThemeEngineSystem instance is to be initialized
(i.e. it is installed and enabled) .
Nonetheless the issue is not limited to that plugin IMO .
Besides I confirmed that r10295 is causing this as everything works as
expected in r10294 .
I provide further details based on the research I made
;)

I updated my working copy to r10294 (immediately before committing for the
first time what was discussed in #9418 ;) and Trac website
(i.e. home page with no theme applied, and everything else ;) works ok .
At that moment  :

{{{
#!sh

$ hg identify
3902453643bf (trunk) svn-10294
}}}

When moving forward to r10295 similar failure happens ... and I say
**similar** because traceback looks a bit different due to subsequent
changes committed in r10298 and r10300 . To be more precise

{{{
#!sh

$ hg identify
8dda5d3eb23d (trunk) svn-10295
}}}

> I assume you got this traceback from your trac.log. Is it preceded by
> another traceback? If so, that's the actual error you are trying to fix.
> Please post that traceback.
>

Nope ... tb is rendered rather than page contents ; just like it
happens with unhandled Trac errors .
:-/

Everything starts with this

{{{

Traceback (most recent call last):
  File "/path/to/trac/hg/mirror/trac-mq/trac/web/api.py", line 496, in
send_error
    data, 'text/html')
  File "/path/to/trac/hg/mirror/trac-mq/trac/web/chrome.py", line 982,
in render_template
    template = self.load_template(filename, method=method)
  File "/path/to/trac/hg/mirror/trac-mq/trac/web/chrome.py", line 942,
in load_template
    self.get_all_templates_dirs(), auto_reload=self.auto_reload,
  File "/path/to/trac/hg/mirror/trac-mq/trac/web/chrome.py", line 653,
in get_all_templates_dirs
    for provider in self.template_providers:
  File "/path/to/trac/hg/mirror/trac-mq/trac/core.py", line 78, in extensions
    components = [component.compmgr[cls] for cls in classes]
  File "/path/to/trac/hg/mirror/trac-mq/trac/core.py", line 199, in __getitem__
    component = cls(self)
  File "/path/to/trac/hg/mirror/trac-mq/trac/core.py", line 138, in __call__
    self.__init__()
}}}

... but honestly snippet above is not really relevant (if you need me to
explain why this is not relevant and what's happening under the hood please
let me know , I'll do that asaic ;) . You can start by checking
from line below (i.e. you can invoke `theme_eng = ThemeEngineSystem(env)` from
the command line python interpreter and you'll get the same result ;)

{{{

  File 
"/path/to/trac/0.13/env/plugins/TracThemeEngine-2.0-py2.6.egg/themeengine/admin.py",
line 21, in __init__
    self.system = ThemeEngineSystem(self.env)
}}}

... immediately after doing so the following calls are repeated as
part of the infinite loop ...

{{{
File "/path/to/trac/hg/mirror/trac-mq/trac/core.py", line 138, in __call__
    self.__init__()
  File 
"/path/to/trac/0.13/env/plugins/TracThemeEngine-2.0-py2.6.egg/themeengine/api.py",
line 63, in __init__
    for provider in self.providers:
  File "/path/to/trac/hg/mirror/trac-mq/trac/core.py", line 78, in extensions
    components = [component.compmgr[cls] for cls in classes]
  File "/path/to/trac/hg/mirror/trac-mq/trac/core.py", line 199, in __getitem__
    component = cls(self)
}}}

... which means that after this you get another similar sequence (...
I think I should not repeat the same, I'm just hoping everybody gets
the idea ;)

I'm writing a patch containing a unit test with a simplified scenario
illustrating the barely minimal context for this to happen . The root
cause for infinite loop is that after r10295 instances are registered
in ComponentManager's «pool» after calling __init__ method (#9418
records the whole discussion ;)

PS: Like I mentioned before if you need me to
explain what's happening under the hood please
let me know , I'll do it asap ;)

Thanks for your promptly response

--
Regards,

Olemis

Facebook => http://www.facebook.com/olemis
Twitter => http://www.twitter.com/olemislc (@olemislc)
Blog ES => http://simelo-es.blogspot.com
Blog EN => http://simelo-en.blogspot.com
Quora => http://www.quora.com/olemis
Youtube => http://youtube.com/user/greatsoftw

Featured article : Identificando números primos con expresión regular en Perl
http://feedproxy.google.com/~r/simelo-news/~3/BHr859OSndo/identificando-numeros-primos-con.html
Tweet: check it out ! ;) RT @arielmcorg Lista la aplicación oficial de
Wikipedia para Android http://t.co/pdwfBr3x #fb
Follow @olemislc Reply Retweet   07:56 Jan-19
  Get this email app!
Get a signature like this. CLICK HERE.

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Development" group.
To post to this group, send email to trac-dev@googlegroups.com.
To unsubscribe from this group, send email to 
trac-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/trac-dev?hl=en.

Reply via email to