Abbiamo un'applicazione web basata su Django che viene utilizzata per ricevere i dati POST dai dispositivi iOS (push token di notifica).Django - UnreadablePostError di volta in volta?
Tutto sommato, l'applicazione sembra funzionare correttamente e stiamo ricevendo un POST 1000-2000 con dati validi ogni ora. Comunque, sto ricevendo di tanto in tanto log degli errori da Django con i seguenti dati:
Traceback (most recent call last):
File "/opt/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/opt/local/lib/python2.7/site-packages/django/views/decorators/vary.py", line 19, in inner_func
response = func(*args, **kwargs)
File "/opt/local/lib/python2.7/site-packages/django_piston-0.2.3-py2.7.egg/piston/resource.py", line 160, in __call__
request.data = request.POST
File "/opt/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 180, in _get_post
self._load_post_and_files()
File "/opt/local/lib/python2.7/site-packages/django/http/__init__.py", line 372, in _load_post_and_files
self._post, self._files = QueryDict(self.body, encoding=self._encoding), MultiValueDict()
File "/opt/local/lib/python2.7/site-packages/django/http/__init__.py", line 328, in body
self._body = self.read()
File "/opt/local/lib/python2.7/site-packages/django/http/__init__.py", line 384, in read
return self._stream.read(*args, **kwargs)
File "/opt/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 98, in read
result = self.buffer + self._read_limited()
File "/opt/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 92, in _read_limited
result = self.stream.read(size)
UnreadablePostError: request data read error
E la discarica WSGIRequest dice POST: <could not parse>
Ho cercato di trovare ulteriori informazioni su questo errore, e un sacco di quello che sto vedendo indica che questo errore è causato da un utente che cancella una richiesta POST prima del completamento del post. È un errore di cui dovrei preoccuparmi, o dovrei semplicemente configurare il server per filtrare questi messaggi di errore? Direi che ricevo circa 8-10 email automatiche al giorno a riguardo.
Penso che potresti tranquillamente ignorare tali richieste interrotte. – demalexx
Queste sono richieste post annullate. Tuttavia, potrebbe essere necessario verificare che si tratti di annullamenti effettivi o che gli utenti li abbiano interrotti perché la richiesta richiedeva molto tempo. Per il caso successivo, è necessario verificare se c'è un collo di bottiglia nella tua app. – Rohan
Sono questi durante il caricamento di file? Se sì - O l'utente ha caricato un file, sostiene, e interrompe richiesta, tempo della sessione fuori, o l'hardware è danneggiato, in modo che quando si sta cercando il contenuto dei file di accesso da qualche particolare posizione di memoria, si genera l'errore a causa di dati non corretti. – karthikr