[GH-ISSUE #788] Websocket error: Connection reset by peer due to Rust panic #546

Closed
opened 2026-03-03 01:30:24 +03:00 by kerem · 1 comment
Owner

Originally created by @samkhawase on GitHub (Dec 30, 2019).
Original GitHub issue: https://github.com/dani-garcia/vaultwarden/issues/788

Subject of the issue

Websocket error: Connection reset by peer

Your environment

  • Bitwarden_rs version: 1.13.0-25454697
  • Install method: Docker image server:aarch64
  • Clients used: curl
  • Reverse proxy and version: NA
  • Version of mysql/postgresql: NA
  • Other relevant information: It's running on ARM64 scaleway server.

Steps to reproduce

  1. Install bitwarden_rs using the following command:
sudo docker run -d --name bitwarden \
-e WEBSOCKET_ENABLED=true \
-e ADMIN_TOKEN=<a-long-string>\
-e SIGNUPS_ALLOWED=false \
-e INVITATIONS_ALLOWED=false \
-e LOG_FILE=/data/bitwarden.log \
-e RUST_BACKTRACE=full \
-v /home/ubuntu/host/bw-data/:/data/ \
-p 8080:80 \
-p 3012:3012 \
bitwardenrs/server:aarch64
  1. issue the following curl command twice
    curl -i -N -H "Sec-WebSocket-Key: test" localhost:3012

and how did you start bitwarden_rs? --> It was started by Docker

Expected behaviour

The following output is expected:

HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Sec-WebSocket-Accept: tNpbgC8ZQDOcSkHAWopKzQjJ1hI=
Upgrade: websocket

curl: (52) Empty reply from server

Actual behaviour

The following output is observed:
curl: (56) Recv failure: Connection reset by peer

Relevant logs

Here are the complete logs of the process using RUST_BACKTRACE=full

ubuntu@server ~> sudo docker run -d --name bitwarden \
                -e WEBSOCKET_ENABLED=true \
                -e ADMIN_TOKEN=<a-long-string> \
                -e SIGNUPS_ALLOWED=false \
                -e INVITATIONS_ALLOWED=false \
                -e LOG_FILE=/data/bitwarden.log \
                -e RUST_BACKTRACE=full \
                -v /home/ubuntu/host/bw-data/:/data/ \
                -p 8080:80 \
                -p 3012:3012 \
                bitwardenrs/server:aarch64
68ec7cd8edc45dd88be80a825e7634842f7eedefdde0f42dbb5ce2fd1c93be3e

ubuntu@server ~> curl -i -N -H "Sec-WebSocket-Key: test" localhost:3012
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Sec-WebSocket-Accept: tNpbgC8ZQDOcSkHAWopKzQjJ1hI=
Upgrade: websocket

curl: (52) Empty reply from server

ubuntu@server ~> curl -i -N -H "Sec-WebSocket-Key: test" localhost:3012
curl: (56) Recv failure: Connection reset by peer

ubuntu@server ~> sudo docker logs bitwarden
/--------------------------------------------------------------------\
|                       Starting Bitwarden_RS                        |
|                      Version 1.13.0-25454697                       |
|--------------------------------------------------------------------|
| This is an *unofficial* Bitwarden implementation, DO NOT use the   |
| official channels to report bugs/features, regardless of client.   |
| Report URL: https://github.com/dani-garcia/bitwarden_rs/issues/new |
\--------------------------------------------------------------------/

[2019-12-30 12:30:58][ws][INFO] Listening for new connections on 0.0.0.0:3012.
[2019-12-30 12:30:58][start][INFO] Rocket has launched from http://0.0.0.0:80
[2019-12-30 12:31:02][ws::io][INFO] Accepted a new tcp connection from 172.17.0.1:57770.
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', /rustc/ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d/src/libcore/macros/mod.rs:15:40
stack backtrace:
   0:     0xaaaae88b8f7c - backtrace::backtrace::libunwind::trace::h14245b8e89be4856
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1:     0xaaaae88b8f7c - backtrace::backtrace::trace_unsynchronized::hbeb412f349a2bd0d
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2:     0xaaaae88b8f7c - std::sys_common::backtrace::_print_fmt::he645dea008acbc0c
                               at src/libstd/sys_common/backtrace.rs:84
   3:     0xaaaae88b8f7c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h7e466a6e1b29c261
                               at src/libstd/sys_common/backtrace.rs:61
   4:     0xaaaae88d86e0 - core::fmt::write::hd5d728588be34453
                               at src/libcore/fmt/mod.rs:1025
   5:     0xaaaae88b2ab8 - std::io::Write::write_fmt::h11e159575ed79122
                               at src/libstd/io/mod.rs:1426
   6:     0xaaaae88baed4 - std::sys_common::backtrace::_print::hfbc607e43473500c
                               at src/libstd/sys_common/backtrace.rs:65
   7:     0xaaaae88baed4 - std::sys_common::backtrace::print::h9f8c0ebdfb626aa7
                               at src/libstd/sys_common/backtrace.rs:50
   8:     0xaaaae88baed4 - std::panicking::default_hook::{{closure}}::h9cd8d4e86c8b0398
                               at src/libstd/panicking.rs:193
   9:     0xaaaae88babd8 - std::panicking::default_hook::h3a57684fac3e5d83
                               at src/libstd/panicking.rs:210
  10:     0xaaaae88bb58c - std::panicking::rust_panic_with_hook::ha4b8ecf65cd444bb
                               at src/libstd/panicking.rs:471
  11:     0xaaaae88bb1b8 - rust_begin_unwind
                               at src/libstd/panicking.rs:375
  12:     0xaaaae88d5394 - core::panicking::panic_fmt::h06e2988d5e49456a
                               at src/libcore/panicking.rs:84
  13:     0xaaaae88d5318 - core::panicking::panic::h1c20ae952d0c50cf
                               at src/libcore/panicking.rs:51
  14:     0xaaaae81a78b0 - <bitwarden_rs::api::notifications::WSHandler as ws::handler::Handler>::on_open::h24c1f3c12473a9fc
  15:     0xaaaae8147738 - ws::connection::Connection<H>::write::ha605edff34026795
  16:     0xaaaae8274cd0 - ws::io::Handler<F>::run::hacaeda5eac413df4
  17:     0xaaaae81e7848 - ws::WebSocket<F>::listen::h0fe7321096d2307a
  18:     0xaaaae80a6888 - std::sys_common::backtrace::__rust_begin_short_backtrace::h8f5a14b6eaad33ff
  19:     0xaaaae88c2fbc - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:78
  20:     0xaaaae827b80c - core::ops::function::FnOnce::call_once{{vtable.shim}}::h57b76678fb494447
  21:     0xaaaae88abdcc - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::he1ed8b7037f8990f
                               at /rustc/ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d/src/liballoc/boxed.rs:1022
  22:     0xaaaae88c2738 - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h56fca8eca66f818e
                               at /rustc/ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d/src/liballoc/boxed.rs:1022
  23:     0xaaaae88c2738 - std::sys_common::thread::start_thread::hcc1aad08c45ba4a2
                               at src/libstd/sys_common/thread.rs:13
  24:     0xaaaae88c2738 - std::sys::unix::thread::Thread::new::thread_start::h7d651386842882d3
                               at src/libstd/sys/unix/thread.rs:80
  25:     0xffff9bc757e4 - start_thread
  26:     0xffff9bba7adc - <unknown>
  27:                0x0 - <unknown>
Originally created by @samkhawase on GitHub (Dec 30, 2019). Original GitHub issue: https://github.com/dani-garcia/vaultwarden/issues/788 <!-- Please fill out the following template to make solving your problem easier and faster for us. This is only a guideline. If you think that parts are unneccessary for your issue, feel free to remove them. Remember to hide/obfuscate personal and confidential information, such as names, global IP/DNS adresses and especially passwords, if neccessary. --> ### Subject of the issue **Websocket error: Connection reset by peer** ### Your environment <!-- The version number, obtained from the logs or the admin page --> * Bitwarden_rs version: **1.13.0-25454697** <!-- How the server was installed: Docker image / package / built from source --> * Install method: Docker image `server:aarch64` * Clients used: `curl` * Reverse proxy and version: NA * Version of mysql/postgresql: NA * Other relevant information: It's running on ARM64 scaleway server. ### Steps to reproduce 1. Install bitwarden_rs using the following command: ``` sudo docker run -d --name bitwarden \ -e WEBSOCKET_ENABLED=true \ -e ADMIN_TOKEN=<a-long-string>\ -e SIGNUPS_ALLOWED=false \ -e INVITATIONS_ALLOWED=false \ -e LOG_FILE=/data/bitwarden.log \ -e RUST_BACKTRACE=full \ -v /home/ubuntu/host/bw-data/:/data/ \ -p 8080:80 \ -p 3012:3012 \ bitwardenrs/server:aarch64 ``` 2. issue the following curl command *twice* `curl -i -N -H "Sec-WebSocket-Key: test" localhost:3012` and how did you start bitwarden_rs? --> It was started by Docker ### Expected behaviour The following output is expected: ``` HTTP/1.1 101 Switching Protocols Connection: Upgrade Sec-WebSocket-Accept: tNpbgC8ZQDOcSkHAWopKzQjJ1hI= Upgrade: websocket curl: (52) Empty reply from server ``` ### Actual behaviour The following output is observed: `curl: (56) Recv failure: Connection reset by peer` ### Relevant logs Here are the complete logs of the process using `RUST_BACKTRACE=full` ``` ubuntu@server ~> sudo docker run -d --name bitwarden \ -e WEBSOCKET_ENABLED=true \ -e ADMIN_TOKEN=<a-long-string> \ -e SIGNUPS_ALLOWED=false \ -e INVITATIONS_ALLOWED=false \ -e LOG_FILE=/data/bitwarden.log \ -e RUST_BACKTRACE=full \ -v /home/ubuntu/host/bw-data/:/data/ \ -p 8080:80 \ -p 3012:3012 \ bitwardenrs/server:aarch64 68ec7cd8edc45dd88be80a825e7634842f7eedefdde0f42dbb5ce2fd1c93be3e ubuntu@server ~> curl -i -N -H "Sec-WebSocket-Key: test" localhost:3012 HTTP/1.1 101 Switching Protocols Connection: Upgrade Sec-WebSocket-Accept: tNpbgC8ZQDOcSkHAWopKzQjJ1hI= Upgrade: websocket curl: (52) Empty reply from server ubuntu@server ~> curl -i -N -H "Sec-WebSocket-Key: test" localhost:3012 curl: (56) Recv failure: Connection reset by peer ubuntu@server ~> sudo docker logs bitwarden /--------------------------------------------------------------------\ | Starting Bitwarden_RS | | Version 1.13.0-25454697 | |--------------------------------------------------------------------| | This is an *unofficial* Bitwarden implementation, DO NOT use the | | official channels to report bugs/features, regardless of client. | | Report URL: https://github.com/dani-garcia/bitwarden_rs/issues/new | \--------------------------------------------------------------------/ [2019-12-30 12:30:58][ws][INFO] Listening for new connections on 0.0.0.0:3012. [2019-12-30 12:30:58][start][INFO] Rocket has launched from http://0.0.0.0:80 [2019-12-30 12:31:02][ws::io][INFO] Accepted a new tcp connection from 172.17.0.1:57770. thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', /rustc/ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d/src/libcore/macros/mod.rs:15:40 stack backtrace: 0: 0xaaaae88b8f7c - backtrace::backtrace::libunwind::trace::h14245b8e89be4856 at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88 1: 0xaaaae88b8f7c - backtrace::backtrace::trace_unsynchronized::hbeb412f349a2bd0d at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66 2: 0xaaaae88b8f7c - std::sys_common::backtrace::_print_fmt::he645dea008acbc0c at src/libstd/sys_common/backtrace.rs:84 3: 0xaaaae88b8f7c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h7e466a6e1b29c261 at src/libstd/sys_common/backtrace.rs:61 4: 0xaaaae88d86e0 - core::fmt::write::hd5d728588be34453 at src/libcore/fmt/mod.rs:1025 5: 0xaaaae88b2ab8 - std::io::Write::write_fmt::h11e159575ed79122 at src/libstd/io/mod.rs:1426 6: 0xaaaae88baed4 - std::sys_common::backtrace::_print::hfbc607e43473500c at src/libstd/sys_common/backtrace.rs:65 7: 0xaaaae88baed4 - std::sys_common::backtrace::print::h9f8c0ebdfb626aa7 at src/libstd/sys_common/backtrace.rs:50 8: 0xaaaae88baed4 - std::panicking::default_hook::{{closure}}::h9cd8d4e86c8b0398 at src/libstd/panicking.rs:193 9: 0xaaaae88babd8 - std::panicking::default_hook::h3a57684fac3e5d83 at src/libstd/panicking.rs:210 10: 0xaaaae88bb58c - std::panicking::rust_panic_with_hook::ha4b8ecf65cd444bb at src/libstd/panicking.rs:471 11: 0xaaaae88bb1b8 - rust_begin_unwind at src/libstd/panicking.rs:375 12: 0xaaaae88d5394 - core::panicking::panic_fmt::h06e2988d5e49456a at src/libcore/panicking.rs:84 13: 0xaaaae88d5318 - core::panicking::panic::h1c20ae952d0c50cf at src/libcore/panicking.rs:51 14: 0xaaaae81a78b0 - <bitwarden_rs::api::notifications::WSHandler as ws::handler::Handler>::on_open::h24c1f3c12473a9fc 15: 0xaaaae8147738 - ws::connection::Connection<H>::write::ha605edff34026795 16: 0xaaaae8274cd0 - ws::io::Handler<F>::run::hacaeda5eac413df4 17: 0xaaaae81e7848 - ws::WebSocket<F>::listen::h0fe7321096d2307a 18: 0xaaaae80a6888 - std::sys_common::backtrace::__rust_begin_short_backtrace::h8f5a14b6eaad33ff 19: 0xaaaae88c2fbc - __rust_maybe_catch_panic at src/libpanic_unwind/lib.rs:78 20: 0xaaaae827b80c - core::ops::function::FnOnce::call_once{{vtable.shim}}::h57b76678fb494447 21: 0xaaaae88abdcc - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::he1ed8b7037f8990f at /rustc/ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d/src/liballoc/boxed.rs:1022 22: 0xaaaae88c2738 - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h56fca8eca66f818e at /rustc/ff15e9670843f8bd6b54ab1b042d2095b4c0aa6d/src/liballoc/boxed.rs:1022 23: 0xaaaae88c2738 - std::sys_common::thread::start_thread::hcc1aad08c45ba4a2 at src/libstd/sys_common/thread.rs:13 24: 0xaaaae88c2738 - std::sys::unix::thread::Thread::new::thread_start::h7d651386842882d3 at src/libstd/sys/unix/thread.rs:80 25: 0xffff9bc757e4 - start_thread 26: 0xffff9bba7adc - <unknown> 27: 0x0 - <unknown> ```
kerem closed this issue 2026-03-03 01:30:25 +03:00
Author
Owner

@dani-garcia commented on GitHub (Jan 4, 2020):

The panics should be fixed now in github.com/dani-garcia/bitwarden_rs@8c229920ad, thanks!

<!-- gh-comment-id:570826855 --> @dani-garcia commented on GitHub (Jan 4, 2020): The panics should be fixed now in https://github.com/dani-garcia/bitwarden_rs/commit/8c229920ad6bdccbb81110d88ccc139a09d65784, thanks!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/vaultwarden#546
No description provided.