aws / aws/aws-xray-sdk-python

TypeError when setting the key 'exceptions' for 'Entity.cause'

Abierto
#154 4 comentarios 0 reacciones 1 asignado Reclamado por @srprash Ver en GitHub
bug pending release
Lenguaje dominante
Python
Estrellas
338
Forks
147
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

If I understand correctly, `Entity.cause` is turned into a string from a dictionary, and raised a `TypeError` when calling `self.cause['exceptions'] = exceptions`.

Relevant traceback:
```
File \\"/var/task/aws_xray_sdk/core/models/subsegment.py\\", line 31, in __call__\
meta_processor=None,\
File \\"/var/task/aws_xray_sdk/core/recorder.py\\", line 423, in record_subsegment\
subsegment.add_exception(exception, stack)\
File \\"/var/task/aws_xray_sdk/core/models/entity.py\\", line 228, in add_exception\
self.cause[\'exceptions\'] = exceptions\
TypeError: \'str\' object does not support item assignment", "OrderId": "test8f2f5c5dbf774df6b900870bc50b2f7d", "LegacyOrderId": 20168, "Tenant": "uk", "requestId": "7cc85af8-a6a2-454f-8d63-b88339ada756", "XRayTraceId": "1-5ccbed5a-dff39c00f83f3190a93aa1f8"}
```

Full traceback:
```
b'_longitude=-3.2135957 (Caused by NewConnectionError(\': Failed to establish a new connection: [Errno -2] Name or service not known\'))\
\
The above exception was the direct cause of the following exception:\
\
Traceback (most recent call last):\
File \\"/var/task/aws_xray_sdk/core/recorder.py\\", line 401, in record_subsegment\
return_value = wrapped(*args, **kwargs)\
File \\"/var/task/lastmile/lambdas/predict/client.py\\", line 153, in predict_restaurant_working_time\
response = self._call(url, params)\
File \\"/var/task/lastmile/lambdas/predict/client.py\\", line 75, in _call\
raise ConnectError(repr(exc)) from exc\
lastmile.lambdas.predict.client.ConnectError: ConnectionError(MaxRetryError(\\"HTTPConnectionPool(host=\'lastmilepredict-qa28.cogpart.je-labs.com\', port=80): Max retries exceeded with url: /uk/restaurant/1/delivery-eta?restaurant_latitude=50.746794&restaurant_longitude=-1.91133&customer_latitude=54.1120821&customer_longitude=-3.2135957 (Caused by NewConnectionError(\': Failed to establish a new connection: [Errno -2] Name or service not known\'))\\"))\
\
During handling of the above exception, another exception occurred:\
\
Traceback (most recent call last):\
File \\"/var/task/lastmile/lambdas/lambdastar.py\\", line 175, in __call__\
result = self.injector.run([self.handler], state=state)\
File \\"/var/task/apistar/server/injector.py\\", line 106, in run\
state[output_name] = func(**func_kwargs)\
File \\"/var/task/lastmile/handlers/rdsacceptedorder/handler.py\\", line 196, in rds_accepted_order\
customer_location=order.private_customer_location,\
File \\"/var/task/aws_xray_sdk/core/models/subsegment.py\\", line 31, in __call__\
meta_processor=None,\
File \\"/var/task/aws_xray_sdk/core/recorder.py\\", line 423, in record_subsegment\
subsegment.add_exception(exception, stack)\
File \\"/var/task/aws_xray_sdk/core/models/entity.py\\", line 228, in add_exception\
self.cause[\'exceptions\'] = exceptions\
TypeError: \'str\' object does not support item assignment", "OrderId": "test8f2f5c5dbf774df6b900870bc50b2f7d", "LegacyOrderId": 20168, "Tenant": "uk", "requestId": "7cc85af8-a6a2-454f-8d63-b88339ada756", "XRayTraceId": "1-5ccbed5a-dff39c00f83f3190a93aa1f8"}
[ERROR] TypeError: \'str\' object does not support item assignment\rTraceback (most recent call last):\r\xc2\xa0\xc2\xa0File "/var/task/lastmile/common/serialisation.py", line 152, in _wrapper\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0response_dict = func(*args, **kwargs)\r\xc2\xa0\xc2\xa0File "/var/task/aws_xray_sdk/core/models/subsegment.py", line 31, in __call__\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0meta_processor=None,\r\xc2\xa0\xc2\xa0File "/var/task/aws_xray_sdk/core/recorder.py", line 401, in record_subsegment\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0return_value = wrapped(*args, **kwargs)\r\xc2\xa0\xc2\xa0File "/var/task/lastmile/lambdas/lambdastar.py", line 189, in __call__\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0return self.injector.run([exception_handler], state=state)\r\xc2\xa0\xc2\xa0File "/var/task/apistar/server/injector.py", line 106, in run\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0state[output_name] = func(**func_kwargs)\r\xc2\xa0\xc2\xa0File "/var/task/lastmile/lambdas/lambdastar.py", line 212, in default_exception_handler\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0raise exc\r\xc2\xa0\xc2\xa0File "/var/task/lastmile/lambdas/lambdastar.py", line 175, in __call__\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0result = self.injector.run([self.handler], state=state)\r\xc2\xa0\xc2\xa0File "/var/task/apistar/server/injector.py", line 106, in run\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0state[output_name] = func(**func_kwargs)\r\xc2\xa0\xc2\xa0File "/var/task/lastmile/handlers/rdsacceptedorder/handler.py", line 196, in rds_accepted_order\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0customer_location=order.private_customer_location,\r\xc2\xa0\xc2\xa0File "/var/task/aws_xray_sdk/core/models/subsegment.py", line 31, in __call__\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0meta_processor=None,\r\xc2\xa0\xc2\xa0File "/var/task/aws_xray_sdk/core/recorder.py", line 423, in record_subsegment\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0subsegment.add_exception(exception, stack)\r\xc2\xa0\xc2\xa0File "/var/task/aws_xray_sdk/core/models/entity.py", line 228, in add_exception\r\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0self.cause[\'exceptions\'] = exceptions
END RequestId: 7cc85af8-a6a2-454f-8d63-b88339ada756
REPORT RequestId: 7cc85af8-a6a2-454f-8d63-b88339ada756\tDuration: 1394.24 ms\tBilled Duration: 1400 ms \tMemory Size: 256 MB\tMax Memory Used: 70 MB\t
'
```

versions of xray tried: 2.2.0, 2.4.0

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.