Nim
Nim copied to clipboard
critbits.nim `rawGet` causes `FieldDefect: field 'key' is not accessible for type 'NodeObj' using 'isLeaf = 255'` when run multiple times with `-mm:orc`
What happened?
I have a larger web application I am writing with the prologue framework, which makes use of hasKey
from critbits.nim
which in turn makes use of rawGet
.
Normally everything works perfectly fine, all HTTP endpoints are perfect.
However, when making multiple requests in short succession, under some circumstances (namely when triggering the /sessionaudio
and /timestamp
routes together repeatedly) it causes the error:
Exception message: field 'key' is not accessible for type 'NodeObj' using 'isLeaf = 255'
I have no understanding of what causes this bug, as it does a) not appear consistently and b) does not occur in code that I have any understanding of.
I can say the following:
- This error does not occur when using refc instead of orc
- This error does not occur when using
asynchttpserver
Thus the error appears to be specific to orc and httpx (?).
Nim Version
Nim Compiler Version 1.7.1 [Linux: amd64] Compiled at 2022-08-23 Copyright (c) 2006-2022 by Andreas Rumpf
git hash: 8fc19b9e1291017b89148a3747fa77efdaf040e2 active boot switches: -d:release
Current Standard Output Logs
nswebserver | DEBUG TINYPOOL: AFTER RECYCLE - Number of connections in pool: 8
nswebserver | DEBUG 200 OK {"duration-milliseconds": @["13"], "content-type": @["application/json"], "content-encoding": @["deflate"]}
nswebserver | DEBUG socket: 52 is closed!
nswebserver | DEBUG GET /sessionaudio/Aldrune/1/72/
nswebserver | ERROR FieldDefect: field 'key' is not accessible for type 'NodeObj' using 'isLeaf = 255'
nswebserver | Async traceback:
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/compressionMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/cors.nim(67) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(51) switchIter
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/route.nim(504) findHandler
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/route.nim(482) findHandler
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/route.nim(470) findHandler
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/collections/critbits.nim(87) hasKey
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/collections/critbits.nim(74) rawGet
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/system/fatal.nim(53) sysFatal
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/compressionMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) anonymousNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/compressionMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) switchNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) anonymousNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) switchNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) anonymousNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) switchNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) anonymousNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) switchNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | Exception message: field 'key' is not accessible for type 'NodeObj' using 'isLeaf = 255'
nswebserver |
nswebserver | DEBUG 500 Internal Server Error {"content-type": @["text/plain; charset=UTF-8"]}
nswebserver | DEBUG socket: 52 is closed!
nswebserver | DEBUG GET /timestamp/Aldrune/1/72/
nswebserver | ERROR FieldDefect: field 'key' is not accessible for type 'NodeObj' using 'isLeaf = 255'
nswebserver | Async traceback:
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/compressionMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/cors.nim(67) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(51) switchIter
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/route.nim(504) findHandler
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/route.nim(482) findHandler
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/route.nim(470) findHandler
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/collections/critbits.nim(87) hasKey
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/collections/critbits.nim(74) rawGet
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/system/fatal.nim(53) sysFatal
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/compressionMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) anonymousNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/compressionMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) switchNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) anonymousNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/dev/nimstoryfont/src/middleware/timingMiddleware.nim(8) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) switchNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) anonymousNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) anonymousNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/middlewares/staticfile.nim(31) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) switchNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) switchNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/middlewaresbase.nim(48) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) :anonymous
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) anonymousNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) anonymousIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | #[
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(484) eventLoop
nswebserver | /home/philipp/.nimble/pkgs/httpx-0.2.8/httpx.nim(400) processEvents
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(531) :anonymous
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(498) handleRequest
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) handleContext
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(28) handleContextNimAsyncContinue
nswebserver | /home/philipp/.nimble/pkgs/prologue-0.6.0/prologue/core/application.nim(457) handleContextIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(242) switch
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(31) switchNimAsyncContinue
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncmacro.nim(134) switchIter
nswebserver | /home/philipp/.choosenim/toolchains/nim-#devel/lib/pure/asyncfutures.nim(389) read
nswebserver | ]#
nswebserver | Exception message: field 'key' is not accessible for type 'NodeObj' using 'isLeaf = 255'
nswebserver |
Expected Standard Output Logs
No response
Possible Solution
I have troubleshot the passages together with ringabout. We narrowed the issue down to the proc rawGet
.
We further found a solution, as apparently all it takes is modifying rawGet
a little bit to look like this:
# Before - Aka the broken version
proc rawGet[T](c: CritBitTree[T], key: string): Node[T]=
var it = c.root
while it != nil:
if not it.isLeaf:
let ch = if it.byte < key.len: key[it.byte] else: '\0'
let dir = (1 + (ch.ord or it.otherBits.ord)) shr 8
it = it.child[dir]
else:
return if it.key == key: it else: nil
# After - Aka the functional version, changes start after the line `it = it.child[dir]`
proc rawGet[T](c: CritBitTree[T], key: string): Node[T]=
var it = c.root
while it != nil:
if not it.isLeaf:
let ch = if it.byte < key.len: key[it.byte] else: '\0'
let dir = (1 + (ch.ord or it.otherBits.ord)) shr 8
it = it.child[dir]
else:
let itKey = it.key
if itKey == key:
return it
else:
return nil
As I have no understanding on why this actually fixes things, I'll quote ringabout here:
I guess ORC doesn't like complex expressions. return if it.key == key: it else: nil I guess the root cause is that it gets moved wrongly in the while loop and this if statement.
Additional Information
We essentially already have the solution (though I still don't know why that's a bug/problem) thanks to ringabout! I'll write up the PR to apply their change.