graphql-python / graphql-python/graphql-core-legacy
Exceptions in subscriptions is not logging
- Langage dominant
- Python
- Étoiles
- 372
- Forks
- 175
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Hello!
I've just found that exceptions in subscriptions are not logging, but the message of an exceptions returns to client.
```python
class OrderBookSubscription(graphene.ObjectType):
order_book = graphene.Field(
OrderBook,
pair_id=graphene.Int(required=True)
)
@classmethod
async def resolve_order_book(cls, root, info, pair_id):
listener = info.context['not exists key']
```
Request:
```json
{"id":"3","type":"start","payload":{"variables":{"pairId":11},"extensions":{},"operationName":"OrderBookWS","query":"subscription OrderBookWS($pairId: Int!) {\n orderBook(pairId: $pairId) {\n buy {\n price\n volume\n share\n __typename\n }\n sell {\n price\n volume\n share\n __typename\n }\n spread\n __typename\n }\n}\n"}}
```
Response:
```json
{"id": "3", "type": "data", "payload": {"data": {"orderBook": null}, "errors": [{"message": "'not exists key'"}]}}
{"id": "3", "type": "complete"}
```
Logs:
```
======== Running on http://0.0.0.0:8080 ========
(Press CTRL+C to quit)
2020-07-08 12:06:15,070 - Rx - DEBUG - CurrentThreadScheduler.schedule(state=None)
2020-07-08 12:06:15,072 - Rx - DEBUG - CurrentThreadScheduler.schedule(state=None)
2020-07-08 12:06:15,072 - Rx - DEBUG - CurrentThreadScheduler.schedule(state=None)
```
Also i've found exception handler, in which need to log the exception.
https://github.com/graphql-python/graphql-core-legacy/blob/master/graphql/execution/executors/asyncio_utils.py#L28
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par graphql/execution/executors/asyncio_utils.py, au niveau du gestionnaire d’exceptions indiqué dans l’issue, puis reproduisez l’exemple OrderBookSubscription avec la clé de contexte manquante. Confirmez que l’exception est journalisée tandis que la réponse de la souscription continue de signaler l’erreur au client.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- api, backend
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100