temporalio / temporal

Temporal service
https://docs.temporal.io
MIT License
12.19k stars 851 forks source link

Limit failure cause depth #5763

Open cretz opened 7 months ago

cretz commented 7 months ago

Describe the solution you'd like

Users can set very deep failure causes, and once it gets past 30 or so it breaks some protobuf parsers (any based on upb like Python and maybe Ruby/C/C++). We should limit the depth to something like 10/15. Can discuss implementation design on how this limitation occurs (not sure we should reject the failure but up to implementer). I can also provide more exact numbers on how deep before Python fails if that information is needed.

yiminc commented 7 months ago

Server is not crack open those failure and just pass it along. It would be hard for server to arbitrary determine what is the cutoff depth.