Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#30059 closed Bug (duplicate)

DELETE request with payload makes subsequent request fail

Reported by: Dmytro Yurchenko Owned by: nobody
Component: HTTP handling Version: 2.1
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

In my application I use a frontend component FilePond (https://pqina.nl/filepond/) to perform photo file uploads.
FilePond uses its own server protocol to manage temp files on the backend and sends a photo ID as a payload for DELETE request. According to RFC7231: "payload within a DELETE request message has no defined semantics", but it isn't forbidden. Django development server can't process a request that follows DELETE with payload as it regards the payload to be a part of the next request's first line.
For example when photo ID is '0', next request is logged like this:

"0POST /accounts/profile/photo/ HTTP/1.1" 405 0

Quick and dirty fix for my View subclass is:

def delete(self, request):
    # Drain the incoming buffer
    request._stream.read()
    ...
    return HttpResponse(status=204)

When incoming data are wholly consumed by DELETE handler, subsequent requests work as expected.

Best regards,
Dmytro Yurchenko

Change History (3)

comment:1 by Simon Charette, 6 years ago

Are you using Django 2.1.4 by any chance? If that's the case then it's possible you are affected by #30015 which will be fixed in 2.1.5 by b514dc14f4e1c364341f5931b354e83ef15ee12d.

comment:2 by Tim Graham, 6 years ago

Component: UncategorizedHTTP handling
Resolution: needsinfo
Status: newclosed
Type: UncategorizedBug

In any case, I think we need a test or some some sample code reproduce the issue.

comment:3 by Dmytro Yurchenko, 6 years ago

Resolution: needsinfoduplicate

Hello! It is Django 2.1.4. I have checked it with master branch and the bug is no longer reproducible. I assume #30015 is indeed a more general description (and fix) of the same issue. Thank you!

Note: See TracTickets for help on using tickets.
Back to Top