changeset 2234:e8401b82e6bc

attempt to deal with ClientDisconnect, which was spamming logs
author drewp@bigasterisk.com
date Wed, 24 May 2023 14:10:15 -0700
parents a6c5b87890ae
children f9edd9819b7d
files light9/collector/service.py
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/light9/collector/service.py	Wed May 24 13:14:30 2023 -0700
+++ b/light9/collector/service.py	Wed May 24 14:10:15 2023 -0700
@@ -22,6 +22,7 @@
 from rdfdb.syncedgraph.syncedgraph import SyncedGraph
 from starlette.applications import Starlette
 from starlette.endpoints import WebSocketEndpoint
+from starlette.requests import ClientDisconnect
 from starlette.responses import Response
 from starlette.routing import Route, WebSocketRoute
 from starlette.types import Receive, Scope, Send
@@ -57,7 +58,12 @@
 
 async def PutAttrs(collector: Collector, request):
     with STAT_SETATTR.time():
-        client, clientSession, settings, sendTime = parseJsonMessage(collector.graph, await request.body())
+        try:
+            body = await request.body()
+        except ClientDisconnect:
+            log.warning("PUT /attrs request disconnected- ignoring")
+            return Response('', status_code=400)
+        client, clientSession, settings, sendTime = parseJsonMessage(collector.graph, body)
         collector.setAttrs(client, clientSession, settings, sendTime)
         return Response('', status_code=202)