Skip to content

Incomplete async stack traces #206

@mihai1voicescu

Description

@mihai1voicescu

Motivation

Some errors have their stack traces incomplete, making them impossible to debug. Example:

 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime FATAL EXCEPTION: main
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime Process: io.almer.remoteassistence, PID: 6652
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime io.rsocket.kotlin.RSocketError$ApplicationError: Request cancelled
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at io.rsocket.kotlin.RSocketErrorKt.RSocketError(RSocketError.kt:68)
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at io.rsocket.kotlin.frame.ErrorFrameKt.readError(ErrorFrame.kt:47)
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at io.rsocket.kotlin.frame.FrameKt.readFrame(Frame.kt:71)
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at io.rsocket.kotlin.internal.ConnectKt$connect$7.invokeSuspend(Connect.kt:90)
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
 02-01 17:42:09.667  E  [6652/6652] AndroidRuntime 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

This looks like an internal error and I have nothing to debug it with or no additional info...

Even wrapping all the requests in try catch does not help in catching this...

Desired solution

Having the actual call site would be great. Also being able to catch the errors seems necessary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions