Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
63c67ed
test: enable ubertest in CI to debug issues
iduartgomez Oct 9, 2025
625f5a8
test improvements
netsirius Oct 11, 2025
9abe8ef
remove unnecessary sleep
netsirius Oct 11, 2025
3f471e5
debug: add extensive logging to trace PUT operation message flow
iduartgomez Oct 13, 2025
afda8ea
add a simplified room creation test
netsirius Oct 13, 2025
8fa9f7b
Add extensive debug logging to diagnose PUT notification channel issue
iduartgomez Oct 13, 2025
88c3b21
Add comprehensive error handling and unit tests for notification channel
iduartgomez Oct 13, 2025
9fca463
Add tokio-console support for debugging task lifecycle issues
iduartgomez Oct 13, 2025
fae309f
Add console subscriber initialization for runtime debugging
iduartgomez Oct 13, 2025
2135b75
Add channel ID tracking to verify sender/receiver matching
iduartgomez Oct 13, 2025
a26e36b
Add comprehensive investigation summary for issue #1944
iduartgomez Oct 13, 2025
4832075
Add comprehensive select! branch logging to diagnose event loop deadlock
iduartgomez Oct 13, 2025
31920e9
Fix: Add timeout to handshake handler to prevent event loop deadlock
iduartgomez Oct 13, 2025
2fe52d6
docs: Add comprehensive investigation summary for issue #1944
iduartgomez Oct 14, 2025
3bd8852
docs: Add comprehensive waker registration failure analysis
iduartgomez Oct 14, 2025
2ab8139
WIP: Custom priority select combinator to fix waker registration
iduartgomez Oct 14, 2025
a1d827a
fix: Import and type corrections for priority_select module
iduartgomez Oct 14, 2025
d1d3168
fix: Add Box::pin() for async method calls and fix imports
iduartgomez Oct 14, 2025
5e3b36f
Implement custom priority select combinator to fix PUT operation wake…
iduartgomez Oct 14, 2025
d29edbd
refactor: simplify event loop by making priority select the only impl…
iduartgomez Oct 14, 2025
b0e23f8
chore: remove unused tokio::select import
iduartgomez Oct 14, 2025
f0a521c
fix: poll handshake wait_for_events() as whole to preserve all logic
iduartgomez Oct 14, 2025
5fca43e
test: re-enable test_basic_room_creation to verify waker registration…
iduartgomez Oct 14, 2025
e43cd5d
chore: apply cargo fmt formatting
iduartgomez Oct 14, 2025
fc74713
chore: undo unnecessary handshake handler changes
iduartgomez Oct 14, 2025
6d82f42
chore: fix lint issues
iduartgomez Oct 14, 2025
726d748
fix: use stack-allocated futures in priority_select to fix waker regi…
iduartgomez Oct 15, 2025
6c84525
fix: use BoxFuture instead of generic stack futures to avoid stack ov…
iduartgomez Oct 15, 2025
dfecda3
ci: skip Ubertest for fix/put-operation-network-send branch
iduartgomez Oct 15, 2025
d8c9b64
ci: disable Ubertest job for all branches
iduartgomez Oct 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,47 @@ jobs:
- name: Test
run: cargo test --workspace --no-default-features --features trace,websocket,redb

ubertest:
name: Ubertest
needs: test_all
# TODO: Re-enable when ubertest is stable - currently failing
if: false

runs-on: freenet-default-runner

env:
FREENET_LOG: error
CARGO_TARGET_DIR: ${{ github.workspace }}/target
UBERTEST_PEER_COUNT: 6 # Fewer peers for faster CI

steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.12.1
with:
access_token: ${{ github.token }}

- uses: actions/checkout@v5

- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: wasm32-unknown-unknown

- uses: Swatinem/rust-cache@v2
if: success() || steps.test.conclusion == 'failure'
with:
save-if: false

- name: Install riverctl
run: cargo install riverctl

- name: Build
run: cargo build --locked

- name: Run Ubertest
run: cargo test --test ubertest --no-default-features --features trace,websocket,redb
working-directory: crates/core

clippy_check:
name: Clippy

Expand Down
190 changes: 181 additions & 9 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion crates/core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ itertools = "0.14"
notify = "8"
pav_regression = "0.5.2"
parking_lot = "0.12"
pin-project = "1"
rand = { features = ["small_rng"], workspace = true }
redb = { optional = true, version = "3" }
serde = { features = ["derive", "rc"], workspace = true }
Expand All @@ -51,7 +52,7 @@ sqlx = { features = ["runtime-tokio-rustls", "sqlite"], optional = true, version
stretto = { features = ["async", "sync"], version = "0.8" }
tar = { version = "0.4" }
thiserror = "2"
tokio = { features = ["fs", "macros", "rt-multi-thread", "sync", "process"], version = "1" }
tokio = { features = ["fs", "macros", "rt-multi-thread", "sync", "process", "tracing"], version = "1" }
tokio-tungstenite = "0.27.0"
tower-http = { features = ["fs", "trace"], version = "0.6" }
ulid = { features = ["serde"], version = "1.1" }
Expand All @@ -74,6 +75,7 @@ opentelemetry_sdk = { optional = true, version = "0.31", features = ["rt-tokio"]

# internal deps
freenet-stdlib = { features = ["net"], workspace = true }
console-subscriber = { version = "0.4.1", optional = true }

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["sysinfoapi"] }
Expand Down Expand Up @@ -101,3 +103,4 @@ trace = ["tracing-subscriber"]
trace-ot = ["opentelemetry-jaeger", "trace", "tracing-opentelemetry", "opentelemetry-otlp"]
websocket = ["axum/ws"]
testing = ["freenet-stdlib/testing"]
console-subscriber = ["dep:console-subscriber"]
2 changes: 1 addition & 1 deletion crates/core/src/bin/freenet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ fn main() -> anyhow::Result<()> {
.enable_all()
.build()
.unwrap();
let config = ConfigArgs::parse();
rt.block_on(async move {
let config = ConfigArgs::parse();
if config.version {
println!("Freenet version: {}", config.current_version());
return Ok(());
Expand Down
Loading
Loading