diff --git a/backend/mpc-system/scripts/deploy.sh b/backend/mpc-system/scripts/deploy.sh index b3995d4b..56654e83 100644 --- a/backend/mpc-system/scripts/deploy.sh +++ b/backend/mpc-system/scripts/deploy.sh @@ -542,6 +542,97 @@ reconfigure() { log_info "Restart services with: $0 restart" } +# ============================================ +# Debug Command (troubleshooting) +# ============================================ +debug() { + echo "" + echo "============================================" + echo "MPC-System Debug Information" + echo "============================================" + echo "" + + # Load environment variables + if [ -f "$CONFIG_DIR/mpc.env" ]; then + source "$CONFIG_DIR/mpc.env" + log_info "Loaded environment from $CONFIG_DIR/mpc.env" + else + log_error "Environment file not found: $CONFIG_DIR/mpc.env" + return 1 + fi + + echo "" + echo "=== Environment Variables ===" + echo "MPC_DATABASE_HOST: ${MPC_DATABASE_HOST:-NOT SET}" + echo "MPC_DATABASE_PORT: ${MPC_DATABASE_PORT:-NOT SET}" + echo "MPC_DATABASE_USER: ${MPC_DATABASE_USER:-NOT SET}" + echo "MPC_DATABASE_PASSWORD: ${MPC_DATABASE_PASSWORD:+SET (hidden)}" + echo "MPC_DATABASE_DBNAME: ${MPC_DATABASE_DBNAME:-NOT SET}" + echo "SESSION_COORDINATOR_ADDR: ${SESSION_COORDINATOR_ADDR:-NOT SET}" + echo "MESSAGE_ROUTER_ADDR: ${MESSAGE_ROUTER_ADDR:-NOT SET}" + echo "" + + echo "=== PostgreSQL Connection Test ===" + local DB_USER="${MPC_DATABASE_USER:-mpc_user}" + local DB_PASS="${MPC_DATABASE_PASSWORD:-}" + local DB_NAME="${MPC_DATABASE_DBNAME:-mpc_system}" + local DB_HOST="${MPC_DATABASE_HOST:-localhost}" + + # Test PostgreSQL connection with password + echo "Testing connection to PostgreSQL..." + if PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U "$DB_USER" -d "$DB_NAME" -c "SELECT 1;" > /dev/null 2>&1; then + echo " PostgreSQL connection: ${GREEN}OK${NC}" + else + echo " PostgreSQL connection: ${RED}FAILED${NC}" + echo "" + echo " Trying with verbose output:" + PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U "$DB_USER" -d "$DB_NAME" -c "SELECT 1;" 2>&1 || true + echo "" + echo " Check pg_hba.conf authentication method:" + cat /etc/postgresql/*/main/pg_hba.conf 2>/dev/null | grep -v "^#" | grep -v "^$" | head -10 + fi + echo "" + + echo "=== Redis Connection Test ===" + if redis-cli ping > /dev/null 2>&1; then + echo " Redis connection: ${GREEN}OK${NC}" + else + echo " Redis connection: ${RED}FAILED${NC}" + fi + echo "" + + echo "=== RabbitMQ Connection Test ===" + if rabbitmqctl status > /dev/null 2>&1; then + echo " RabbitMQ status: ${GREEN}OK${NC}" + else + echo " RabbitMQ status: ${RED}FAILED${NC}" + fi + echo "" + + echo "=== Port Listening Status ===" + echo " PostgreSQL (5432): $(ss -tlnp | grep ':5432' > /dev/null && echo 'LISTENING' || echo 'NOT LISTENING')" + echo " Redis (6379): $(ss -tlnp | grep ':6379' > /dev/null && echo 'LISTENING' || echo 'NOT LISTENING')" + echo " RabbitMQ (5672): $(ss -tlnp | grep ':5672' > /dev/null && echo 'LISTENING' || echo 'NOT LISTENING')" + echo " Session Coordinator gRPC (50051): $(ss -tlnp | grep ':50051' > /dev/null && echo 'LISTENING' || echo 'NOT LISTENING')" + echo " Message Router gRPC (50052): $(ss -tlnp | grep ':50052' > /dev/null && echo 'LISTENING' || echo 'NOT LISTENING')" + echo " Account Service HTTP (8080): $(ss -tlnp | grep ':8080' > /dev/null && echo 'LISTENING' || echo 'NOT LISTENING')" + echo "" + + echo "=== Service Error Logs (last 10 lines) ===" + for service in mpc-session-coordinator mpc-message-router mpc-server-party-1 mpc-account; do + echo "" + echo "--- $service ---" + journalctl -u "$service" --no-pager -n 10 2>/dev/null || echo "No logs available" + done + echo "" + + echo "=== Manual Test Command ===" + echo "Run this command to manually test a service:" + echo "" + echo " sudo -u $MPC_USER bash -c 'source $CONFIG_DIR/mpc.env && $BIN_DIR/session-coordinator'" + echo "" +} + # ============================================ # Uninstall Command # ============================================ @@ -588,6 +679,9 @@ case "${1:-}" in reconfigure) reconfigure ;; + debug) + debug + ;; start) start_services ;; @@ -609,12 +703,13 @@ case "${1:-}" in *) echo "MPC-System Deployment Script" echo "" - echo "Usage: $0 {install|build|reconfigure|start|stop|restart|status|logs|uninstall}" + echo "Usage: $0 {install|build|reconfigure|debug|start|stop|restart|status|logs|uninstall}" echo "" echo "Commands:" echo " install - Install system dependencies (Go, PostgreSQL, Redis, RabbitMQ)" echo " build - Build services and configure infrastructure" echo " reconfigure - Reconfigure PostgreSQL/Redis/RabbitMQ (fix auth issues)" + echo " debug - Show debug information and test connections" echo " start - Start all MPC services" echo " stop - Stop all MPC services" echo " restart - Restart all MPC services" @@ -630,6 +725,7 @@ case "${1:-}" in echo " $0 status # Check status" echo "" echo "Troubleshooting:" + echo " $0 debug # Show debug info and test DB connection" echo " $0 reconfigure # Fix database authentication issues" echo " $0 restart # Then restart services" echo ""