Opened 5 years ago

Last modified 5 years ago

#31091 closed Bug

ConnectionResetError: [Errno 104] Connection reset by peer with a simple GET call — at Initial Version

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

Description

Hello,

I have this pretty simple GET api method (I use djangorestframework, but the issue is still related to Django itself, see all my explanations):

from rest_framework import generics, status
from rest_framework.response import Response
from django.conf import settings

class Monitoring(generics.RetrieveAPIView):
    def retrieve(self, request, *args, **kwargs):
        return Response({
            "app_build": settings.APP_BUILD_NUMBER,
        }, status=status.HTTP_200_OK
        )

I was using Django Version 2.1.1, everything was working perfectly fine.

Then, I upgraded to version Django 2.2.8, and I suddenly get the following error (for all my API call, but I took the simplest as an example) :

[14/Dec/2019 23:18:29] "GET /monitoring HTTP/1.1" 200 38
----------------------------------------
Exception happened during processing of request from ('x.y.z.x', 53609)
Traceback (most recent call last):
  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/socketserver.py", line 654, in process_request_thread
    self.finish_request(request, client_address)
  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/socketserver.py", line 364, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/socketserver.py", line 724, in __init__
    self.handle()
  File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/django/core/servers/basehttp.py", line 153, in handle
    self.handle_one_request()
  File "/opt/rh/rh-python36/root/usr/lib/python3.6/site-packages/django/core/servers/basehttp.py", line 161, in handle_one_request
    self.raw_requestline = self.rfile.readline(65537)
  File "/opt/rh/rh-python36/root/usr/lib64/python3.6/socket.py", line 586, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [Errno 104] Connection reset by peer
----------------------------------------

FYI, I'm using Python 2.6.9 version

By the way, these APIs are sending me the response as expected, these errors are just printed on Django console, so I guess it's not critical nor preventing Django to work as expected, but it's still annoying to get these errors everytime now.

I just did one thing: Tried different versions of Django (using pip3.6), and here the result I got :

  • Django 2.1.1: Working as expected
  • Django 2.1.3: Working as expected
  • Django 2.1.4: Error
  • Django 2.1.5: Error
  • Django 2.1.15: Error
  • Django 2.2.0: Error
  • Django 2.2.8: Error

So I guess something happened between Django 2.1.3 and 2.1.4 but can't figure what.

Thanks for the help!
Kindly

Change History (0)

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