This guide provides solutions for common issues you might encounter when using RFS and its components.
Symptoms:
- Error message:
Failed to mount flist - FUSE-related errors
Possible Causes:
- Missing FUSE installation
- Insufficient permissions
- Mount point issues
- Invalid flist file
Solutions:
-
Check FUSE Installation
# Check if FUSE is installed ls -l /dev/fuse # Install FUSE if missing # Ubuntu/Debian sudo apt-get install fuse libfuse-dev # Fedora/CentOS/RHEL sudo dnf install fuse fuse-devel
-
Check Permissions
# Ensure you're using sudo sudo rfs mount -m flist.fl /mount/point # Check if you're in the fuse group groups | grep fuse # Add yourself to the fuse group if needed sudo usermod -a -G fuse $USER
-
Check Mount Point
# Ensure the mount point exists mkdir -p /mount/point # Ensure the mount point is empty ls -la /mount/point # Ensure the mount point is not already mounted mountpoint /mount/point
-
Verify Flist File
# Check if the flist file exists ls -la flist.fl # Check flist metadata rfs config -m flist.fl tag list
Symptoms:
- Long delay when mounting flists
- Mounted filesystem is slow to respond
- High CPU or memory usage
Solutions:
-
Check Storage Backend Connectivity
# For HTTP store curl -I http://store.example.com/path # For ZDB store telnet zdb.example.com 9900
-
Optimize Cache Location
# Use SSD for cache rfs mount -m flist.fl -c /mnt/ssd/cache /mount/point -
Check System Resources
# Monitor CPU and memory top # Check disk I/O iostat -x 1
-
Enable Debug Logging
# Run with debug logging sudo rfs --debug mount -m flist.fl /mount/point
Symptoms:
- Error message:
Failed to connect to store - Timeout errors
- Network-related errors
Solutions:
-
Check Network Connectivity
# Check if the host is reachable ping store.example.com # Check if the port is open telnet store.example.com 9900
-
Verify Store URL
# List stores in the flist rfs config -m flist.fl store list # Try adding an alternative store rfs config -m flist.fl store add -s alternative-store-url
-
Check Credentials
# For S3 store aws s3 ls s3://bucket-name --endpoint-url http://s3.example.com:9000 -
Check Firewall Rules
# Check if outgoing connections are allowed sudo iptables -L -n
Symptoms:
- Error message:
Content not found - Files appear in directory listing but cannot be accessed
Solutions:
-
Verify Content Exists
# For directory store find /tmp/store -type f | wc -l # For HTTP store curl -I http://store.example.com/some/path
-
Check Sharding Configuration
# List stores in the flist rfs config -m flist.fl store list -
Try Adding Alternative Stores
# Add a backup store rfs config -m flist.fl store add -s backup-store-url -
Recreate the Flist
# If possible, recreate the flist rfs pack -m new.fl -s store-url /path/to/directory
Symptoms:
- Error message:
Failed to unpack flist - Permission errors
- Storage errors
Solutions:
-
Check Destination Permissions
# Ensure you have write permission ls -ld /destination/directory # Change permissions if needed chmod 755 /destination/directory
-
Check Available Space
# Ensure sufficient disk space df -h /destination/directory -
Check Storage Backend Connectivity
# Verify storage backend is accessible # (See solutions for storage backend issues)
-
Try Without Preserving Ownership
# Unpack without preserving ownership rfs unpack -m flist.fl /destination/directory
Symptoms:
- Files have unexpected ownership or permissions
- Cannot access unpacked files
Solutions:
-
Use Preserve Ownership Flag
# Unpack with preserved ownership (requires sudo) sudo rfs unpack -m flist.fl -p /destination/directory -
Check Original File Permissions
# Mount the flist and check permissions sudo rfs mount -m flist.fl /mount/point ls -la /mount/point -
Fix Permissions After Unpacking
# Change ownership sudo chown -R user:group /destination/directory # Fix permissions sudo chmod -R u+rw /destination/directory
Symptoms:
- Error message:
Failed to start server - Port binding errors
- Configuration errors
Solutions:
-
Check Configuration File
# Validate TOML syntax cat config.toml | python3 -c "import tomli; import sys; tomli.loads(sys.stdin.read())"
-
Check Port Availability
# Check if the port is already in use netstat -tuln | grep 3000 # Kill process using the port if needed sudo fuser -k 3000/tcp
-
Check Directory Permissions
# Ensure flist_dir exists and is writable ls -ld flists # Create directory if missing mkdir -p flists
-
Run with Debug Logging
# Start with debug flag rfs server --config-path config.toml --debug
Symptoms:
- Error message:
Authentication failed - Invalid token errors
- Login failures
Solutions:
-
Verify User Configuration
# Check user configuration in config.toml grep -A 2 "[[users]]" config.toml
-
Check JWT Secret
# Ensure jwt_secret is set in config.toml grep "jwt_secret" config.toml
-
Check Token Expiration
# Set longer token expiration # jwt_expire_hours = 24
-
Clear Browser Cookies
# If using the frontend, clear browser cookies and try again
Symptoms:
- Error message:
Failed to convert Docker image - Docker-related errors
- Timeout errors
Solutions:
-
Check Docker Installation
# Verify Docker is installed and running docker --version docker ps -
Check Image Accessibility
# Try pulling the image manually docker pull alpine:latest -
Check Storage Space
# Ensure sufficient disk space df -h # Clean up Docker docker system prune -a
-
Check Network Connectivity
# Ensure Docker registry is accessible curl -I https://registry-1.docker.io/v2/
Symptoms:
- Error message:
Build failed - npm or Node.js errors
- Dependency errors
Solutions:
-
Check Node.js Version
# Verify Node.js version node --version # Update Node.js if needed nvm install --lts
-
Clean npm Cache
# Clear npm cache npm cache clean --force # Reinstall dependencies rm -rf node_modules npm install
-
Check for Dependency Issues
# Check for outdated dependencies npm outdated # Update dependencies npm update
-
Check for TypeScript Errors
# Run TypeScript compiler npx tsc --noEmit
Symptoms:
- Error message:
Failed to connect to server - API errors in browser console
- Login failures
Solutions:
-
Check API URL Configuration
# Verify VITE_API_URL in .env file cat .env -
Check CORS Configuration
# Ensure server allows requests from frontend origin # Add appropriate headers in server response
-
Check Network Connectivity
# Ensure server is accessible from browser curl -I http://localhost:3000 -
Check Browser Console
# Open browser developer tools and check for errors
Symptoms:
- Buttons not responding
- Forms not submitting
- Visual glitches
Solutions:
-
Clear Browser Cache
# Clear browser cache and reload -
Check Browser Compatibility
# Try a different browser # The frontend works best with Chrome, Firefox, or Edge
-
Check JavaScript Console
# Open browser developer tools and check for errors -
Check for CSS Issues
# Inspect elements with browser developer tools
Enable debug logging for detailed information:
# For RFS commands
rfs --debug command [options]
# For FL server
rfs server --config-path config.toml --debugTrace system calls to diagnose low-level issues:
# Trace RFS mount
sudo strace -f rfs mount -m flist.fl /mount/pointCapture network traffic to diagnose connectivity issues:
# Capture traffic to/from a storage backend
sudo tcpdump -i any host store.example.com -w capture.pcapIf an flist is corrupted:
-
Try to repair it
# Extract metadata if possible rfs config -m corrupted.fl tag list > tags.txt rfs config -m corrupted.fl store list > stores.txt
-
Recreate it
# If you have the original content rfs pack -m new.fl -s store-url /path/to/directory -
Restore from backup
# If you have a backup cp backup.fl corrupted.fl
If a mount is stuck:
-
Force unmount
# Force unmount sudo umount -f /mount/point # If still stuck sudo umount -l /mount/point
-
Kill RFS processes
# Find RFS processes ps aux | grep rfs # Kill them sudo kill -9 <pid>
-
Check for open files
# Check for processes using the mount lsof | grep /mount/point
If the FL server crashes:
-
Check logs
# Check server logs cat server.log -
Check for resource issues
# Check for memory issues free -h # Check for disk space issues df -h
-
Restart with reduced load
# Start with minimal configuration rfs server --config-path minimal-config.toml
If you're still experiencing issues after trying the solutions in this guide:
-
Check Documentation
- Review the RFS documentation
- Check the Tutorials for step-by-step guides
-
Check GitHub Issues
- Search for similar issues on the RFS GitHub repository
- Open a new issue if needed
-
Community Support
- Join the ThreeFold community forums
- Ask for help in the appropriate channels
-
Gather Information
- Include detailed error messages
- Describe your environment (OS, hardware, etc.)
- Explain the steps to reproduce the issue
- Share relevant logs and configuration files (with sensitive information removed)
For more information about related topics, see: