Skip to content

Header Corruption #53

@thatrandomperson5

Description

@thatrandomperson5

Server:
OS: Linux/Ubuntu 20.04.2 LTS (Focal Fossa)
Nim Version: 2.0.8

Clients Tested:
Windows w/ Chrome
IOS w/ Safari

Issue:
The header of a websocket packet is being scrambled somewhere between the client and ws recvFrame. Chrome dev tools sees no issues with the packet released but I get rsv mismatch on the backend. I tried blotting out the rsv check to see if the error was in the client enabling the rsv flags for some reason but the OPCODE was messed up too. I wasn't able to check the body as ws doesn't read that till a later phase. I have no idea how or why this is happening.

Note: This may not directly be a ws library issue but it is related and this seemed like the best place to ask

Full Traceback:

�}
�
/home/runner/wssh/src/wssh.nim(65) wssh
/home/runner/wssh/src/wssh.nim(39) main
/home/runner/wssh/nimble-env/pkgs2/jester-0.6.0-4834f85e61ae39f6b6acfb74d3bbba62d8779b66/jester.nim(527) serve
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(546) run
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(378) eventLoop
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(229) processEvents
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1711) poll
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1452) runOnce
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(269) processPendingCallbacks
/home/runner/wssh/src/backend/directRouter.nim(53) sendActionPacket (Async)
/home/runner/wssh/src/backend/directRouter.nim(45) recvPacket (Async)
/home/runner/wssh/nimble-env/pkgs2/ws-0.5.0-ae4daf4ae302d0431f3c2d385ae9d2fe767a3246/ws.nim(441) receiveBinaryPacket (Async)
/home/runner/wssh/nimble-env/pkgs2/ws-0.5.0-ae4daf4ae302d0431f3c2d385ae9d2fe767a3246/ws.nim(407) receivePacket (Async)
/home/runner/wssh/nimble-env/pkgs2/ws-0.5.0-ae4daf4ae302d0431f3c2d385ae9d2fe767a3246/ws.nim(356) recvFrame (Async)
[[reraised from:
/home/runner/wssh/src/wssh.nim(65) wssh
/home/runner/wssh/src/wssh.nim(39) main
/home/runner/wssh/nimble-env/pkgs2/jester-0.6.0-4834f85e61ae39f6b6acfb74d3bbba62d8779b66/jester.nim(527) serve
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(546) run
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(378) eventLoop
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(229) processEvents
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1711) poll
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1452) runOnce
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(269) processPendingCallbacks
/home/runner/wssh/src/backend/directRouter.nim(53) sendActionPacket (Async)
/home/runner/wssh/src/backend/directRouter.nim(45) recvPacket (Async)
/home/runner/wssh/nimble-env/pkgs2/ws-0.5.0-ae4daf4ae302d0431f3c2d385ae9d2fe767a3246/ws.nim(441) receiveBinaryPacket (Async)
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncmacro.nim(170) receivePacket (Async)
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(385) read
]]
[[reraised from:
/home/runner/wssh/src/wssh.nim(65) wssh
/home/runner/wssh/src/wssh.nim(39) main
/home/runner/wssh/nimble-env/pkgs2/jester-0.6.0-4834f85e61ae39f6b6acfb74d3bbba62d8779b66/jester.nim(527) serve
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(546) run
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(378) eventLoop
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(229) processEvents
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1711) poll
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1452) runOnce
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(269) processPendingCallbacks
/home/runner/wssh/src/backend/directRouter.nim(53) sendActionPacket (Async)
/home/runner/wssh/src/backend/directRouter.nim(45) recvPacket (Async)
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncmacro.nim(170) receiveBinaryPacket (Async)
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(385) read
]]
[[reraised from:
/home/runner/wssh/src/wssh.nim(65) wssh
/home/runner/wssh/src/wssh.nim(39) main
/home/runner/wssh/nimble-env/pkgs2/jester-0.6.0-4834f85e61ae39f6b6acfb74d3bbba62d8779b66/jester.nim(527) serve
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(546) run
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(378) eventLoop
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(229) processEvents
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1711) poll
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1452) runOnce
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(269) processPendingCallbacks
/home/runner/wssh/src/backend/directRouter.nim(53) sendActionPacket (Async)
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncmacro.nim(170) recvPacket (Async)
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(385) read
]]
[[reraised from:
/home/runner/wssh/src/wssh.nim(65) wssh
/home/runner/wssh/src/wssh.nim(39) main
/home/runner/wssh/nimble-env/pkgs2/jester-0.6.0-4834f85e61ae39f6b6acfb74d3bbba62d8779b66/jester.nim(527) serve
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(546) run
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(378) eventLoop
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(229) processEvents
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1711) poll
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1452) runOnce
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(269) processPendingCallbacks
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncmacro.nim(170) sendActionPacket (Async)
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(385) read
]]
[[reraised from:
/home/runner/wssh/src/wssh.nim(65) wssh
/home/runner/wssh/src/wssh.nim(39) main
/home/runner/wssh/nimble-env/pkgs2/jester-0.6.0-4834f85e61ae39f6b6acfb74d3bbba62d8779b66/jester.nim(527) serve
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(546) run
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(378) eventLoop
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(229) processEvents
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1711) poll
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1452) runOnce
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(269) processPendingCallbacks
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncmacro.nim(170) anonymous (Async)
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(385) read
]]
[[reraised from:
/home/runner/wssh/src/wssh.nim(65) wssh
/home/runner/wssh/src/wssh.nim(39) main
/home/runner/wssh/nimble-env/pkgs2/jester-0.6.0-4834f85e61ae39f6b6acfb74d3bbba62d8779b66/jester.nim(527) serve
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(546) run
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(378) eventLoop
/home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(229) processEvents
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1711) poll
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1452) runOnce
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(269) processPendingCallbacks
/home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(433) asyncCheckCallback
]]
Error: unhandled exception: WebSocket rsv mismatch
Async traceback:
  /home/runner/wssh/src/wssh.nim(65) wssh
  /home/runner/wssh/src/wssh.nim(39) main
  /home/runner/wssh/nimble-env/pkgs2/jester-0.6.0-4834f85e61ae39f6b6acfb74d3bbba62d8779b66/jester.nim(527) serve
  /home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(546) run
  /home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(378) eventLoop
  /home/runner/wssh/nimble-env/pkgs2/httpbeast-0.4.1-b23e57a401057dcb9b7fae1fb8279a6a2ce1d0b8/httpbeast.nim(229) processEvents
  /home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1711) poll
  /home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncdispatch.nim(1452) runOnce
  /home/runner/.choosenim/toolchains/nim-2.0.8/lib/pure/asyncfutures.nim(269) processPendingCallbacks
  /home/runner/wssh/src/backend/directRouter.nim(53) sendActionPacket (Async)
  /home/runner/wssh/src/backend/directRouter.nim(45) recvPacket (Async)
  /home/runner/wssh/nimble-env/pkgs2/ws-0.5.0-ae4daf4ae302d0431f3c2d385ae9d2fe767a3246/ws.nim(441) receiveBinaryPacket (Async)
  /home/runner/wssh/nimble-env/pkgs2/ws-0.5.0-ae4daf4ae302d0431f3c2d385ae9d2fe767a3246/ws.nim(407) receivePacket (Async)
  /home/runner/wssh/nimble-env/pkgs2/ws-0.5.0-ae4daf4ae302d0431f3c2d385ae9d2fe767a3246/ws.nim(356) recvFrame (Async)
Exception message: WebSocket rsv mismatch
 [WebSocketError]

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