Code

Opened 6 years ago

Closed 6 years ago

#6647 closed (fixed)

WSGIRequestHandler dies on "OPTIONS *" request

Reported by: nospampleasethanks Owned by: nobody
Component: HTTP handling Version: master
Severity: Keywords: wsgi http server error
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:

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 (1)

self_path_dummy.patch (764 bytes) - added by nospampleasethanks 6 years ago.
self.path dummy definition patch

Download all attachments as: .zip

Change History (4)

Changed 6 years ago by nospampleasethanks

self.path dummy definition patch

comment:1 Changed 6 years ago by nospampleasethanks

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

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

comment:2 Changed 6 years ago by Simon Greenhill

  • Triage Stage changed from Unreviewed to Ready for checkin

comment:3 Changed 6 years ago by mtredinnick

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

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

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


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

 
Note: See TracTickets for help on using tickets.