Roundup Tracker - Issues

Issue 2550586

classification
TypeError on request "GET /msg1/ HTTP/1.0"
Type: crash Severity: normal
Components: Web interface Versions: 1.4
process
Status: closed fixed
:
: schlatterbeck : ThomasAH, schlatterbeck
Priority: :

Created on 2009-09-04 15:25 by ThomasAH, last changed 2009-12-01 09:22 by schlatterbeck.

Messages
msg3866 Author: [hidden] (ThomasAH) Date: 2009-09-04 15:25
Roundup 1.4.9 running at / (web server root) via the following wsgi script:

#!/usr/bin/env python
import sys
sys.stdout = sys.stderr
# obtain the WSGI request dispatcher
from roundup.cgi.wsgi_handler import RequestDispatcher
tracker_home = '/home/roundup/kolab'
application = RequestDispatcher(tracker_home)

There are bots which send a request which triggers a traceback, which in
turn gets emailed to the admin.
The stripped down version of the request that still triggers the
traceback is:
"GET /msg1/ HTTP/1.0"

(/issue1/ or /user1/ does not trigger it!)

The traceback is:

Traceback (most recent call last):

  File "/usr/local/lib/python2.5/site-packages/roundup/cgi/client.py",
line 474, in inner_main
    self.serve_file(designator)

  File "/usr/local/lib/python2.5/site-packages/roundup/cgi/client.py",
line 887, in serve_file
    self._serve_file(lmt, mime_type, content, filename)

  File "/usr/local/lib/python2.5/site-packages/roundup/cgi/client.py",
line 943, in _serve_file
    self.write_file(filename)

  File "/usr/local/lib/python2.5/site-packages/roundup/cgi/client.py",
line 1349, in write_file
    self.write(content)

  File "/usr/local/lib/python2.5/site-packages/roundup/cgi/client.py",
line 1107, in write
    self._socket_op(self.request.wfile.write, content)

  File "/usr/local/lib/python2.5/site-packages/roundup/cgi/client.py",
line 1084, in _socket_op
    call(*args, **kwargs)

  File
"/usr/local/lib/python2.5/site-packages/roundup/cgi/wsgi_handler.py",
line 23, in write
    return f(data)

TypeError: expected string object for header value
msg3896 Author: [hidden] (ThomasAH) Date: 2009-10-23 15:44
With roundup 1.4.10 the traceback is sent as an HTML mail.
The bad thing is that it is HTML mail, but the good thing is that the
request parameters are included, e.g.:

   REQUEST_METHOD             'GET'
   REQUEST_URI                '/msg1/'
msg3921 Author: [hidden] (schlatterbeck) Date: 2009-12-01 09:22
Fixed in r4395
For download of modified cgi/client.py, see
http://svn.roundup-tracker.org/viewvc/roundup/roundup/trunk/roundup/cgi/client.py?view=log

Turns out that the url .../msg1/ requests download of the file in the
content property of a message. For messages the type property (which
should contain the mime time) is empty. That means we get the python
value None in one of the header fields which led to the traceback.

Fix: If the mime type is None we set it to text/plain. This only happens
for messages (files *do* have a mime type set).
History
Date User Action Args
2009-12-01 09:22:28schlatterbecksetstatus: new -> closed
assignee: schlatterbeck
resolution: fixed
messages: + msg3921
nosy: + schlatterbeck
2009-10-23 15:44:00ThomasAHsetmessages: + msg3896
2009-09-04 15:25:50ThomasAHcreate