Django

Code

Ticket #6647 (closed: fixed)

Opened 10 months ago

Last modified 5 months ago

WSGIRequestHandler dies on "OPTIONS *" request

Reported by: nospampleasethanks Assigned to: nobody
Milestone: Component: HTTP handling
Version: SVN Keywords: wsgi http server error
Cc: Triage Stage: Ready for checkin
Has patch: 1 Needs documentation: 0
Needs tests: 0 Patch needs improvement: 0

Description

An exception is raised by the WSGIRequestHandler:

Exception happened during processing of request from ('127.0.0.1', 60148)
Traceback (most recent call last):
  File "SocketServer.py", line 222, in handle_request
    self.process_request(request, client_address)
  File "SocketServer.py", line 241, in process_request
    self.finish_request(request, client_address)
  File "SocketServer.py", line 254, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.5/site-packages/django/core/servers/basehttp.py", line 554, in __init__
    BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
  File "SocketServer.py", line 522, in __init__
    self.handle()
  File "/usr/lib/python2.5/site-packages/django/core/servers/basehttp.py", line 595, in handle
    if not self.parse_request(): # An error code has been sent, just exit
  File "/usr/lib/python2.5/BaseHTTPServer.py", line 279, in parse_request
    self.send_error(400, "Bad request syntax (%r)" % requestline)
  File "/usr/lib/python2.5/BaseHTTPServer.py", line 343, in send_error
    self.log_error("code %d, message %s", code, message)
  File "/usr/lib/python2.5/BaseHTTPServer.py", line 414, in log_error
    self.log_message(*args)
  File "/usr/lib/python2.5/site-packages/django/core/servers/basehttp.py", line 603, in log_message
    if self.path.startswith(self.admin_media_prefix) or self.path == '/favicon.ico':
AttributeError: WSGIRequestHandler instance has no attribute 'path'

when an HTTP client makes the following request:

OPTIONS * / HTTP/1.1

Django raises a 500 Internal Server Error. Should it return a 400 Bad Request instead?

A patch defining a dummy self.path is attached.

Attachments

self_path_dummy.patch (0.7 kB) - added by nospampleasethanks on 02/22/08 14:36:53.
self.path dummy definition patch

Change History

02/22/08 14:36:53 changed by nospampleasethanks

  • attachment self_path_dummy.patch added.

self.path dummy definition patch

02/22/08 16:10:13 changed by nospampleasethanks

  • needs_better_patch changed.
  • needs_tests changed.
  • needs_docs changed.

Update: The line is "OPTIONS * HTTP/1.1" (thanks to Magus-, from #django fame).

06/14/08 01:39:23 changed by Simon Greenhill

  • stage changed from Unreviewed to Ready for checkin.

06/30/08 06:32:50 changed by mtredinnick

  • status changed from new to closed.
  • resolution set to fixed.

(In [7801]) Fixed #6647 -- Add some more robustness to the development web server.


Add/Change #6647 (WSGIRequestHandler dies on "OPTIONS *" request)




Change Properties
Action