-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Closed
Labels
AsyncEverything related to Nim's asyncEverything related to Nim's async
Description
Here is an example of one of my async stack traces:
C:\p\bencher\src\server.nim(990) server
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1961) waitFor
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1653) poll
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(419) runOnce
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(234) processPendingCallbacks
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(31) processRequestNimAsyncContinue
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asynchttpserver.nim(330) processRequestIter
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(232) cb
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(28) cbNimAsyncContinue
C:\p\bencher\src\server.nim(971) cbIter
C:\p\bencher\src\server.nim(496) runs
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\system\fatal.nim(53) sysFatal
[[reraised from:
C:\p\bencher\src\server.nim(990) server
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1961) waitFor
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1653) poll
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(419) runOnce
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(234) processPendingCallbacks
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(31) processRequestNimAsyncContinue
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(131) processRequestIter
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncfutures.nim(389) read
]]
[[reraised from:
C:\p\bencher\src\server.nim(990) server
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1961) waitFor
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1653) poll
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(419) runOnce
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(234) processPendingCallbacks
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(28) processClientNimAsyncContinue
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(131) processClientIter
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncfutures.nim(389) read
]]
[[reraised from:
C:\p\bencher\src\server.nim(990) server
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1961) waitFor
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1653) poll
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(419) runOnce
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(234) processPendingCallbacks
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncfutures.nim(437) asyncCheckCallback
]]
Error: unhandled exception: index 1000 not in 0 .. 13
Async traceback:
C:\p\bencher\src\server.nim(990) server
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1961) waitFor
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1653) poll
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(419) runOnce
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(234) processPendingCallbacks
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(31) processRequestNimAsyncContinue
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asynchttpserver.nim(330) processRequestIter
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(232) cb
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(28) cbNimAsyncContinue
C:\p\bencher\src\server.nim(971) cbIter
C:\p\bencher\src\server.nim(496) runs
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\system\fatal.nim(53) sysFatal
#[
C:\p\bencher\src\server.nim(990) server
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1961) waitFor
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1653) poll
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(419) runOnce
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(234) processPendingCallbacks
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(31) processRequestNimAsyncContinue
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(131) processRequestIter
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncfutures.nim(389) read
]#
#[
C:\p\bencher\src\server.nim(990) server
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1961) waitFor
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(1653) poll
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(419) runOnce
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncdispatch.nim(234) processPendingCallbacks
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(28) processClientNimAsyncContinue
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncmacro.nim(131) processClientIter
C:\Users\me\.choosenim\toolchains\nim-1.6.6\lib\pure\asyncfutures.nim(389) read
]#
Exception message: index 1000 not in 0 .. 13
[IndexDefect]
I expect a stack traces that looks some thing like this:
C:\p\bencher\src\server.nim(990) server
C:\p\bencher\src\server.nim(971) cbIter
C:\p\bencher\src\server.nim(496) runs
Error: unhandled exception: index 1000 not in 0 .. 13
[IndexDefect]
That's right the function is only 3 async layers deep.
Maybe it would be helpful to mark async functions, so its easier to follow:
C:\p\bencher\src\server.nim(990) {.async.} server
C:\p\bencher\src\server.nim(971) {.async.} cbIter
C:\p\bencher\src\server.nim(496) {.async.} runs
Error: unhandled exception: index 1000 not in 0 .. 13
[IndexDefect]
Currently even debugging simple async stack traces is very hard.
DavideGalilei, avahe-kellenberger, ire4ever1190, Araq, zedeus and 5 morelantos1618
Metadata
Metadata
Assignees
Labels
AsyncEverything related to Nim's asyncEverything related to Nim's async