librespeed / librespeed/speedtest-rust

Crash when using PostgreSQL

Open
#48 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
249
Forks
37
PR merge metrics
No merged PRs in 30d

Description

Full log:

librespeed-rust  | 
librespeed-rust  |      _ _ _                                       _
librespeed-rust  |     | (_) |__  _ __ ___  ___ _ __   ___  ___  __| |      _ __ ___
librespeed-rust  |     | | | '_ \| '__/ _ \/ __| '_ \ / _ \/ _ \/ _` |_____| '__/ __|
librespeed-rust  |     | | | |_) | | |  __/\__ \ |_) |  __/  __/ (_| |_____| |  \__ \
librespeed-rust  |     |_|_|_.__/|_|  \___||___/ .__/ \___|\___|\__,_|     |_|  |___/
librespeed-rust  |                             |_|
librespeed-rust  | 
librespeed-rust  | [2026-08-13 20:35:04.217 INFO librespeed_rs] Config assets directory successfully.
librespeed-rust  | [2026-08-13 20:35:04.217 INFO librespeed_rs] Configs initialized file : configs.toml
librespeed-rust  | [2026-08-13 20:35:04.238 INFO librespeed_rs] NOTICE: relation "speedtest_users" already exists, skipping
librespeed-rust  | [2026-08-13 20:35:04.238 INFO librespeed_rs] Database Postgres initialized successfully
librespeed-rust  | [2026-08-13 20:35:04.238 INFO librespeed_rs] Server started on 0.0.0.0:8080
librespeed-rust  | [2026-08-13 20:35:04.238 INFO librespeed_rs] Server base url : /backend/
librespeed-rust  | 
librespeed-rust  | thread 'main' panicked at src/database/postgres.rs:94:19:
librespeed-rust  | can call blocking only when running on the multi-threaded runtime
librespeed-rust  | stack backtrace:
librespeed-rust  |    0:     0xaaaaca687134 - <unknown>
librespeed-rust  |    1:     0xaaaaca5a3848 - <unknown>
librespeed-rust  |    2:     0xaaaaca686c50 - <unknown>
librespeed-rust  |    3:     0xaaaaca686f4c - <unknown>
librespeed-rust  |    4:     0xaaaaca68699c - <unknown>
librespeed-rust  |    5:     0xaaaaca6aac40 - <unknown>
librespeed-rust  |    6:     0xaaaaca6aabb8 - <unknown>
librespeed-rust  |    7:     0xaaaaca6ab1ec - <unknown>
librespeed-rust  |    8:     0xaaaaca5218d4 - <unknown>
librespeed-rust  |    9:     0xaaaaca5210ac - <unknown>
librespeed-rust  |   10:     0xaaaaca5210dc - <unknown>
librespeed-rust  |   11:     0xaaaaca5647e8 - <unknown>
librespeed-rust  |   12:     0xaaaaca55846c - <unknown>
librespeed-rust  |   13:     0xaaaaca557664 - <unknown>
librespeed-rust  |   14:     0xaaaaca5476e4 - <unknown>
librespeed-rust  |   15:     0xaaaaca56d114 - <unknown>
librespeed-rust  |   16:     0xaaaaca5383b4 - <unknown>
librespeed-rust  |   17:     0xaaaaca5723c4 - <unknown>
librespeed-rust  |   18:     0xffffbae07744 - <unknown>
librespeed-rust  |   19:     0xffffbae07818 - __libc_start_main
librespeed-rust  |   20:     0xaaaaca52a464 - <unknown>
librespeed-rust exited with code 133 (restarting)

psql setup:

postgres=# CREATE USER librespeed WITH PASSWORD 'librespeedpass';
CREATE ROLE
postgres=# CREATE DATABASE speedtest OWNER librespeed;
CREATE DATABASE
postgres=# 
\q

config:

# database config for : mysql, postgres, sqlite, memory, or disable by write none
# after restarting the service, the in-memory database is reset
# if none is specified, no telemetry/stats will be recorded, and no result JPG will be generated
database_type="postgres"
database_hostname="192.168.10.23"
database_name="speedtest"
database_username="librespeed"
database_password="librespeedpass"
# if you use `sqlite` as database, set database_file to database file location
database_file="speedtest.db"

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/database/postgres.rs at line 94 and reproduce the crash using the PostgreSQL setup and config shown in the issue. Inspect how the blocking database operation is run on the async runtime. Done means the service starts with PostgreSQL enabled and does not panic or restart with the reported runtime error.

Written by the indexing model from the issue text.

Assessment

Tech stack
postgresql, rust
Domain
backend, databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.