Opened 10 years ago
Closed 7 years ago
#11811 closed defect (fixed)
AttributeError: 'function' object has no attribute 'warn'
Reported by: | Owned by: | Christian Boos | |
---|---|---|---|
Priority: | normal | Milestone: | plugin - mercurial |
Component: | plugin/mercurial | Version: | 1.0dev |
Severity: | critical | Keywords: | |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
How to Reproduce
While doing a GET operation on /browser
, Trac issued an internal error.
Comments:
It seems that the fix [3bf996dd58c7/mercurial-plugin] fixing #11696 is not sufficient. When a warning is raised by Mercurial this error occurs - self._log
is a function and thus does not have a warn
method.
I am not a Python programmer. However, I installed TracMercurial using python setup.py develop -mxd
and I was able to overcome this error by
-
tracext/hg/backend.py
a b 188 188 self._log.info('(mercurial status) %s', a) 189 189 190 190 def write_err(self, *args, **opts): 191 for a in args: 192 self._log.warn('(mercurial warning) %s', a) 191 return False 192 #for a in args: 193 # self._log.warn('(mercurial warning) %s', a) 193 194 194 195 def plain(self, *args, **kw): 195 196 return False # so that '[hg] hgrc' file can specify [ui] options
Local variables at line 192, in write_err
:
Name | Value |
a | 'not trusting file /var/lib/mercurial-server/repos/fllop/.hg/hgrc from ...
|
args | ('not trusting file /var/lib/mercurial-server/repos/fllop/.hg/hgrc ...
|
opts | {'label': ' ui.warning'}
|
self | <tracext.hg.backend.trac_ui object at 0xa7bce0ec>
|
Request parameters:
{'path': '/'}
User agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
System Information
Mercurial | 3.0.1
|
Trac | 1.0.3dev-r13216
|
Babel | 1.3
|
Genshi | 0.7 (with speedups)
|
mod_wsgi | 3.3 (WSGIProcessGroup WSGIApplicationGroup %{GLOBAL})
|
Pygments | 1.4
|
pysqlite | 2.6.0
|
Python | 2.7.3 (default, Feb 27 2014, 20:11:37) [GCC 4.6.3]
|
pytz | 2014.9
|
setuptools | 0.6
|
SQLite | 3.7.9
|
jQuery | 1.7.2
|
jQuery UI | 1.8.21
|
jQuery Timepicker | 1.0.1
|
Enabled Plugins
TracAccountManager | 0.5dev-r13324
|
TracDateField | 3.0.0dev-r12118
|
TracMasterTickets | 3.0.5dev-r13319
|
TracMercurial | 1.0.0.3dev
|
Python Traceback
Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.3dev_r13216-py2.7.egg/trac/web/main.py", line 512, in _dispatch_request dispatcher.dispatch(req) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.3dev_r13216-py2.7.egg/trac/web/main.py", line 221, in dispatch resp = chosen_handler.process_request(req) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.3dev_r13216-py2.7.egg/trac/versioncontrol/web_ui/browser.py", line 398, in process_request context, all_repositories, order, desc) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.3dev_r13216-py2.7.egg/trac/versioncontrol/web_ui/browser.py", line 520, in _render_repository_index repos = rm.get_repository(reponame) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0.3dev_r13216-py2.7.egg/trac/versioncontrol/api.py", line 579, in get_repository repoinfo.copy()) File "/opt/srv/trac/projects/permon/plugins/mercurial-plugin-src/tracext/hg/backend.py", line 440, in get_repository repos = MercurialRepository(dir, params, self.log, self) File "/opt/srv/trac/projects/permon/plugins/mercurial-plugin-src/tracext/hg/backend.py", line 564, in __init__ self.repo = hg.repository(ui=self.ui, path=str_path) File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 119, in repository peer = _peerorrepo(ui, path, create) File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 106, in _peerorrepo obj = _peerlookup(path).instance(ui, path, create) File "/usr/lib/python2.7/dist-packages/mercurial/localrepo.py", line 1907, in instance return localrepository(ui, util.urllocalpath(path), create) File "/usr/lib/python2.7/dist-packages/mercurial/localrepo.py", line 209, in __init__ self.ui.readconfig(self.join("hgrc"), self.root) File "/usr/lib/python2.7/dist-packages/mercurial/ui.py", line 87, in readconfig trusted = sections or trust or self._trusted(fp, filename) File "/usr/lib/python2.7/dist-packages/mercurial/ui.py", line 74, in _trusted 'user %s, group %s\n') % (f, user, group)) File "/usr/lib/python2.7/dist-packages/mercurial/ui.py", line 714, in warn self.write_err(*msg, **opts) File "/opt/srv/trac/projects/permon/plugins/mercurial-plugin-src/tracext/hg/backend.py", line 192, in write_err self._log.warn('(mercurial warning) %s', a) AttributeError: 'function' object has no attribute 'warn'
Attachments (0)
Change History (5)
comment:1 by , 10 years ago
Milestone: | → plugin - mercurial |
---|---|
Owner: | set to |
Status: | new → assigned |
comment:2 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
I indeed didn't fix #11696 properly, corrected in [94fc1af5c223/mercurial-plugin].
I also took this opportunity to make a 1.0.0.4 version.
Thanks for the report!
comment:4 by , 7 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
I've got the same problem with mercurial 4.2.3 and TracMercurial-0.12.0.31dev.
Applying the same patch as [94fc1af5c223/mercurial-plugin] on branch 0.12 solve the problem. Could someone do it on the official repo ?
comment:5 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Done in [53/mercurial-plugin].
Please upgrade. We aren't maintaining 0.12 any longer.
Can't figure what's going on yet - must try to reproduce.