self-hosted icon indicating copy to clipboard operation
self-hosted copied to clipboard

?bug: Cannot invoke 'uname` to get architecture type

Open MarioninD opened this issue 1 year ago • 6 comments

What happened?

I can't quite understand what the error is related to, I think I did everything according to the instructions :)

docker-compose logs api and minio/mc

Attaching to revolt_api_1
api_1            |  INFO  revolt_config > Starting [email protected]
api_1            |  WARN  revolt_config > No Captcha key specified! Remember to add hCaptcha key.
api_1            |  **ERROR os_info::architecture > Cannot invoke 'uname` to get architecture type: Os { code: 2, kind: NotFound, message: "No such file or directory" }**
api_1            |  INFO  revolt_database::models::admin_migrations::ops::mongodb > Migrating the database.



createbuckets_1  | mc: <ERROR> Couldn't construct anonymous client for `minio`. No valid configuration found for 'minio' host alias.
createbuckets_1  | Waiting minio...

MarioninD avatar Oct 09 '24 03:10 MarioninD

Check to see if you can invoke the uname command on the system console

JoCat avatar Oct 09 '24 11:10 JoCat

Same issue. uname and uname -a works fine in host machine

Sirse avatar Oct 09 '24 13:10 Sirse

Not sure if it's the same issue, but looks quite the same for me. Happens when trying to connect WebSocket

events-1         |  INFO  revolt_config > Starting [email protected]
events-1         |  ERROR os_info::architecture > Cannot invoke 'uname` to get architecture type: Os { code: 2, kind: NotFound, message: "No such file or directory" }

Right after that, main thread collapses

events-1         | thread 'main' panicked at /home/rust/src/crates/core/presence/src/lib.rs:166:43:
events-1         | Redis connection: FailedConnection
events-1         | note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

uname in host machine looks good as far as I can tell

uname -a
Linux debian 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux

Fresh setup with .env / Revolt.toml changes for external access via reverse proxy (curl and wscat from local machine directly provides the same results). Used mongo version (4.4 for older CPU as guide says).

Deswolrd avatar Oct 10 '24 09:10 Deswolrd

Not sure if it's the same issue, but looks quite the same for me. Happens when trying to connect WebSocket

events-1         |  INFO  revolt_config > Starting [email protected]
events-1         |  ERROR os_info::architecture > Cannot invoke 'uname` to get architecture type: Os { code: 2, kind: NotFound, message: "No such file or directory" }

Right after that, main thread collapses

events-1         | thread 'main' panicked at /home/rust/src/crates/core/presence/src/lib.rs:166:43:
events-1         | Redis connection: FailedConnection
events-1         | note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

uname in host machine looks good as far as I can tell

uname -a
Linux debian 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux

Fresh setup with .env / Revolt.toml changes for external access via reverse proxy (curl and wscat from local machine directly provides the same results). Used mongo version (4.4 for older CPU as guide says).

Yes, absolutely same issue (Ubuntu 24.04.1 LTS), old homelab Intel NUC with mongo 4.4.

Sirse avatar Oct 10 '24 11:10 Sirse

Same error here, on Synology DS918+.

JVT038 avatar Oct 13 '24 11:10 JVT038

Same issue here.

uname -a
Linux revolt-chat 5.14.0-513.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Sep 27 07:50:59 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Macarthurval avatar Oct 24 '24 06:10 Macarthurval

I'm hosting on Linux/Ubuntu and ran into the same problem.

The error message is created in the os_info library, when i tries to run uname: https://github.com/stanislav-tkach/os_info/blob/master/os_info/src/architecture.rs#L10 Because the revolt image is stripped-down and has no executables, this library call fails to execute uname and fails.

I was able to work around it by modifying my compose.yml to manually copy uname from the original image used to build revolt in the first place.

Specifically, I made this change to my compose.yml:

BEFORE

  # API server (delta)
  api:
    image: ghcr.io/revoltchat/server:20240929-1

AFTER

  # API server (delta)
  api:
    build:
      dockerfile_inline: |
        FROM rust:1.77.2-slim-bookworm AS builder
        FROM ghcr.io/revoltchat/server:20240929-1 AS target
        COPY --from=builder /bin/uname /usr/bin/uname

brownian-motion avatar Nov 10 '24 22:11 brownian-motion

This is fixed in build 20241212-1

IAmTomahawkx avatar Dec 12 '24 10:12 IAmTomahawkx