Opened 13 years ago
Closed 10 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.