Друзья, привет! Возвращаясь к вопросам по корутинам. Есть тривиальный кейс с вложенными вызовами suspend функций. В последнем из вызовов происходит выброс исключения, которое ловится только в стартовой функции, которая запустила всю эту цепочку вызовов suspend функций, и исключение отправляется в лог.
Утверждается, что стектрейс в логе должен быть полноценным, так как в 1.1 релизнули Stack trace recovery
https://github.com/Kotlin/kotlinx.coroutines/issues/74 И это действительно вроде как работает, но только если в промежуточных вызовах не менять диспетчера. А вот если его сменить, что стек трейс получается обрезанным.
Вопрос: Это бай дизайн или это бага? Просто открытого issue по этой теме найти не могу, а мне кажется я не один такой желающий и если бы это была бага, давно бы уже создали.
Ну и если это бай дизайн, то может кто подскажет какой хак, как всё-таки увидеть в логах полную цепочку вызовов suspend функций? Слабо себе представляю, как можно разбирать инцидент на проде, если в логах только стектрейс последней континуации и хз по какому пути мы туда пришли 🙁