Skip to content

Commit 1311fbb

Browse files
websockets: avoid duplicate resolve call
* Due to inheritance, we were calling `resolve(execution_result.data)` twice.
1 parent 6c6a2b4 commit 1311fbb

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

cylc/uiserver/websockets/tornado.py

+12-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from asyncio.queues import QueueEmpty
1414
from tornado.websocket import WebSocketClosedError
1515
from graphql.execution.middleware import MiddlewareManager
16-
from graphql_ws.base import ConnectionClosedException
16+
from graphql_ws.base import ConnectionClosedException, BaseSubscriptionServer
1717
from graphql_ws.base_async import (
1818
BaseAsyncConnectionContext,
1919
BaseAsyncSubscriptionServer
@@ -165,4 +165,14 @@ async def send_execution_result(self, connection_context, op_id, execution_resul
165165
await resolve(execution_result.data)
166166
request_context = connection_context.request_context
167167
await request_context['resolvers'].flow_delta_processed(request_context, op_id)
168-
await super().send_execution_result(connection_context, op_id, execution_result)
168+
else:
169+
await resolve(execution_result.data)
170+
171+
# NOTE: skip TornadoSubscriptionServer.send_execution_result because it
172+
# calls "resolve" then invokes BaseSubscriptionServer.send_execution_result
173+
await BaseSubscriptionServer.send_execution_result(
174+
self,
175+
connection_context,
176+
op_id,
177+
execution_result,
178+
)

0 commit comments

Comments
 (0)