Opened 12 years ago
Closed 9 years ago
#11056 closed defect (wontfix)
TypeError: execv() arg 2 must contain only strings
Reported by: | cips | Owned by: | Herbert Valerio Riedel |
---|---|---|---|
Priority: | normal | Component: | GitPlugin |
Severity: | normal | Keywords: | umlaute |
Cc: | Trac Release: | 0.12 |
Description
How to Reproduce
While doing a GET operation on /browser/Evaluation/Fragebögen
, Trac issued an internal error.
When browsing my git sources, the system call to the git executable fails in subprocess.py
, due to the Umlaut in the file name, which is passed as a parameter.
This error first appeared when updating from Debian squeeze to Debian wheezy, which updated trac to version 0.12.3-1 and trac-git to version 0.12.0.5+722342e-1.
I was able to avoid the exception by modifying PyGIT.py line 729 (def get_historian(self, sha, base_path):
):
original:
sha, '--', base_path)]
modification:
sha, '--', base_path.encode('utf-8'))]
Request parameters:
{'path': u'/Evaluation/Frageb\xf6gen'}
User agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0
System Information
Trac | 0.12.3
|
Babel | 0.9.6
|
Docutils | 0.8.1
|
Genshi | 0.6
|
GIT | 1.7.10.4
|
mod_python | 3.3.1
|
Pygments | 1.5
|
pysqlite | 2.6.0
|
Python | 2.7.3 (default, Jan 2 2013, 17:14:22) [GCC 4.7.2]
|
pytz | 2012c
|
setuptools | 0.6
|
SQLite | 3.7.13
|
Subversion | 1.6.17 (r1128011)
|
jQuery | 1.7.2
|
Enabled Plugins
TracGit | 0.12.0.5dev
|
Python Traceback
Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/trac/web/main.py", line 522, in _dispatch_request dispatcher.dispatch(req) File "/usr/lib/python2.7/dist-packages/trac/web/main.py", line 243, in dispatch resp = chosen_handler.process_request(req) File "/usr/lib/python2.7/dist-packages/trac/versioncontrol/web_ui/browser.py", line 390, in process_request dir_data = self._render_dir(req, repos, node, rev, order, desc) File "/usr/lib/python2.7/dist-packages/trac/versioncontrol/web_ui/browser.py", line 552, in _render_dir entries = [entry(n) for n in node.get_entries() File "/usr/lib/python2.7/dist-packages/tracext/git/git_fs.py", line 544, in get_entries yield GitNode(self.repos, ent[-1], self.rev, self.log, ent, historian) File "/usr/lib/python2.7/dist-packages/tracext/git/git_fs.py", line 496, in __init__ rev = repos.git.last_change(rev, p, historian) File "/usr/lib/python2.7/dist-packages/tracext/git/PyGIT.py", line 767, in last_change return historian(path) File "/usr/lib/python2.7/dist-packages/tracext/git/PyGIT.py", line 757, in historian return gen.next() File "/usr/lib/python2.7/dist-packages/tracext/git/PyGIT.py", line 728, in name_status_gen sha, '--', base_path)] File "/usr/lib/python2.7/dist-packages/tracext/git/PyGIT.py", line 75, in log_pipe return self.__pipe('log', *cmd_args, stdout=PIPE) File "/usr/lib/python2.7/dist-packages/tracext/git/PyGIT.py", line 57, in __pipe close_fds=True, **kw) File "/usr/lib/python2.7/subprocess.py", line 679, in __init__ errread, errwrite) File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child raise child_exception TypeError: execv() arg 2 must contain only strings
GitPlugin is deprecated. Please upgrade to Trac 1.0 and use TracGit.