Modify

Opened 11 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

Attachments (0)

Change History (1)

comment:1 Changed 9 years ago by Ryan J Ollos

Resolution: wontfix
Status: newclosed

GitPlugin is deprecated. Please upgrade to Trac 1.0 and use TracGit.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Herbert Valerio Riedel.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.