-
-
Notifications
You must be signed in to change notification settings - Fork 97
Debugging River Integration
This page tracks ongoing debugging efforts for River chat integration with Freenet Core.
Primary Repositories Involved:
Last Updated: 2025-08-27
Primary Issue: River end-to-end tests pass locally but fail with remote gateways
Confidence: High (reproducible)
Configuration | Gateway | Peers | Result | Last Tested | Notes |
---|---|---|---|---|---|
Local 3-peer | Local | 3 local processes | β PASS | 2025-08-26 | Consistent success |
Remote AWS | AWS EC2 | 2 local β remote | β FAIL | 2025-08-26 | Subscription timeout |
Remote Nova | nova.locut.us | 2 local β remote | β FAIL | 2025-08-26 | Similar to AWS |
Status: π‘ PRIMARY INVESTIGATION
Confidence: 75%
Evidence FOR:
- Local tests pass consistently
- Remote tests fail consistently
- Failure point: subscription/connection establishment
- Pattern holds across different cloud providers
Evidence AGAINST:
- Ping app works fine with remote gateways
- Basic PUT/GET operations succeed
Test Plan:
- Test with peers on different physical machines (local network)
- Test with peers on completely different networks
- Monitor network traffic during failure
Status: π‘ INVESTIGATING
Confidence: 40%
Evidence FOR:
- Multiple subscriptions on same peer may be problematic
- Not well tested scenario
- Nacho expressed concerns about current implementation
Evidence AGAINST:
- Single subscription scenarios also fail
Test Plan:
- Isolate to single user per peer
- Review WebSocket message flow
Resolution: Now using separate subscribe messages
Date Resolved: 2025-08-26
Fix: River v0.1.x release updated to separate GET and SUBSCRIBE operations
Resolution: Workaround - use alternative provider/port
Date Resolved: 2025-08-25
Notes: Port 31337 potentially problematic (known backdoor port)
Date: 2025-08-26
Test: River multi-user end-to-end test
Variables: Gateway location only
# Local test (PASSES)
cd ~/code/freenet/freenet-testing-tools/gateway-testing
python gateway_test_framework.py --local
# Remote test (FAILS)
python gateway_test_framework.py --remote-gateway nova.locut.us
Results:
- Local: Room creation β invite β join β message exchange all work
- Remote: Fails at subscription establishment after room creation
Date: 2025-08-27 (PLANNED)
Test: Progressive isolation of peers
Variables: Process isolation, machine isolation, network isolation
Test Matrix:
- Same peer, multiple River instances (NOT RECOMMENDED)
- Different processes, same machine, same network
- Different machines, same network
- Different machines, different networks
-
crates/core/src/operations/subscribe.rs:712
- Subscription handling -
crates/core/src/operations/update.rs
- Update propagation - WebSocket API gateway connection establishment
- River contract initial setup flow
- Timing-dependent operations in remote scenarios
- Potential race conditions in invitation acceptance
- Gateway-peer connection state management
Issue | Workaround | Status |
---|---|---|
AWS UDP issues | Use non-AWS provider | β Active |
Port 31337 issues | Use alternative port | β Active |
Multiple users per peer | One peer per user | β Active |
Subscribe with GET | Separate operations | β Implemented |
- Confirm local success is reproducible (3+ runs)
- Test with different peer isolation levels
- Document exact test configurations
- Provide SSH access to nova.locut.us for team
- Review gateway test framework code
- Port test logic to integration test suite
- Attempt local reproduction of issue
- Review River PR integration tests
2025-08-26 23:45:12 ERROR subscription timeout after 30s
2025-08-26 23:45:12 ERROR room_id: 6P5SgHxio9cEF5Cn1ZHb8F7kt88g2skhgTNjCJyD4f3Q
2025-08-26 23:45:12 ERROR peer: local β gateway: nova.locut.us
2025-08-26 23:30:45 INFO room created successfully
2025-08-26 23:30:46 INFO invitation sent
2025-08-26 23:30:47 INFO peer joined room
2025-08-26 23:30:48 INFO message exchange successful