Modify

Opened 4 years ago

Closed 18 months ago

#11056 closed defect (wontfix)

TypeError: execv() arg 2 must contain only strings

Reported by: cips Owned by: hvr
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 18 months ago by rjollos

  • Resolution set to wontfix
  • Status changed from new to closed

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

Add Comment

Modify Ticket

Action
as closed The owner will remain hvr.
The resolution will be deleted. Next status will be 'reopened'.
Author


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

 
Note: See TracTickets for help on using tickets.