|
30 | 30 |
|
31 | 31 | mkdir -p /var/lib/keylime |
32 | 32 |
|
| 33 | +# Function to log detailed information about port 3001 usage |
| 34 | +log_port_3001_info() { |
| 35 | + echo "======== DETAILED PORT 3001 ANALYSIS ========" |
| 36 | + echo "Timestamp: $(date)" |
| 37 | + echo "Environment: CI=${CI:-false}, GITHUB_ACTIONS=${GITHUB_ACTIONS:-false}" |
| 38 | + echo "" |
| 39 | + |
| 40 | + echo "--- lsof output for port 3001 ---" |
| 41 | + if command -v lsof >/dev/null 2>&1; then |
| 42 | + lsof -i :3001 2>/dev/null || echo "No lsof results for port 3001" |
| 43 | + echo "" |
| 44 | + echo "--- lsof with process details ---" |
| 45 | + lsof -i :3001 -P -n 2>/dev/null || echo "No detailed lsof results" |
| 46 | + else |
| 47 | + echo "lsof command not available" |
| 48 | + fi |
| 49 | + echo "" |
| 50 | + |
| 51 | + echo "--- netstat output ---" |
| 52 | + if command -v netstat >/dev/null 2>&1; then |
| 53 | + netstat -tulpn 2>/dev/null | grep ':3001' || echo "No netstat results for port 3001" |
| 54 | + else |
| 55 | + echo "netstat command not available" |
| 56 | + fi |
| 57 | + echo "" |
| 58 | + |
| 59 | + echo "--- ss (socket statistics) output ---" |
| 60 | + if command -v ss >/dev/null 2>&1; then |
| 61 | + ss -tulpn 2>/dev/null | grep ':3001' || echo "No ss results for port 3001" |
| 62 | + else |
| 63 | + echo "ss command not available" |
| 64 | + fi |
| 65 | + echo "" |
| 66 | + |
| 67 | + echo "--- Process tree and details ---" |
| 68 | + if lsof -i :3001 >/dev/null 2>&1; then |
| 69 | + echo "Processes using port 3001:" |
| 70 | + for pid in $(lsof -ti :3001 2>/dev/null); do |
| 71 | + echo " PID: $pid" |
| 72 | + if [ -d "/proc/$pid" ]; then |
| 73 | + echo " Command: $(cat /proc/$pid/comm 2>/dev/null || echo 'N/A')" |
| 74 | + echo " Cmdline: $(cat /proc/$pid/cmdline 2>/dev/null | tr '\0' ' ' || echo 'N/A')" |
| 75 | + echo " User: $(stat -c '%U' /proc/$pid 2>/dev/null || echo 'N/A')" |
| 76 | + echo " Parent PID: $(cat /proc/$pid/stat 2>/dev/null | awk '{print $4}' || echo 'N/A')" |
| 77 | + echo " Start time: $(stat -c '%Y' /proc/$pid 2>/dev/null | xargs -I {} date -d @{} 2>/dev/null || echo 'N/A')" |
| 78 | + echo " Working directory: $(readlink /proc/$pid/cwd 2>/dev/null || echo 'N/A')" |
| 79 | + echo " Environment (filtered):" |
| 80 | + grep -E "(MOCKOON|NODE|NPM|PATH|USER|HOME)" /proc/$pid/environ 2>/dev/null | tr '\0' '\n' | sed 's/^/ /' || echo " N/A" |
| 81 | + else |
| 82 | + echo " Process details not available (proc not mounted or process gone)" |
| 83 | + fi |
| 84 | + echo "" |
| 85 | + done |
| 86 | + fi |
| 87 | + |
| 88 | + echo "--- Process list (mockoon related) ---" |
| 89 | + ps aux 2>/dev/null | grep -i mockoon | grep -v grep || echo "No mockoon processes found" |
| 90 | + echo "" |
| 91 | + |
| 92 | + echo "--- Process list (node related on port 3001) ---" |
| 93 | + ps aux 2>/dev/null | grep -E "(node|npm)" | grep -v grep || echo "No node/npm processes found" |
| 94 | + echo "" |
| 95 | + |
| 96 | + echo "--- Docker containers (if running in container) ---" |
| 97 | + if command -v docker >/dev/null 2>&1 && docker ps >/dev/null 2>&1; then |
| 98 | + docker ps | grep -E "(mockoon|3001)" || echo "No docker containers with mockoon or port 3001" |
| 99 | + else |
| 100 | + echo "Docker not available or not accessible" |
| 101 | + fi |
| 102 | + echo "" |
| 103 | + |
| 104 | + echo "--- Systemd services (if available) ---" |
| 105 | + if command -v systemctl >/dev/null 2>&1; then |
| 106 | + systemctl list-units --type=service | grep -i mockoon || echo "No systemd mockoon services" |
| 107 | + else |
| 108 | + echo "systemctl not available" |
| 109 | + fi |
| 110 | + echo "" |
| 111 | + |
| 112 | + echo "--- HTTP response test ---" |
| 113 | + if curl -s --connect-timeout 2 http://localhost:3001 2>/dev/null; then |
| 114 | + echo "HTTP response received from port 3001" |
| 115 | + echo "Response headers:" |
| 116 | + curl -sI --connect-timeout 2 http://localhost:3001 2>/dev/null || echo "Failed to get headers" |
| 117 | + else |
| 118 | + echo "No HTTP response from port 3001" |
| 119 | + fi |
| 120 | + echo "" |
| 121 | + |
| 122 | + echo "======== END PORT 3001 ANALYSIS ========" |
| 123 | +} |
| 124 | + |
33 | 125 | # Check if Mockoon is already running on port 3001 (e.g., in CI) |
34 | 126 | # Try multiple methods to detect if port 3001 is in use |
35 | 127 | PORT_IN_USE=false |
|
45 | 137 |
|
46 | 138 | if $PORT_IN_USE; then |
47 | 139 | echo "-------- Mockoon already running on port 3001 (likely in CI)" |
| 140 | + log_port_3001_info |
48 | 141 | MOCKOON_PID="" |
49 | 142 | else |
50 | 143 | # Check if Mockoon is installed for local runs |
@@ -106,11 +199,25 @@ if [ -n "$MOCKOON_PID" ]; then |
106 | 199 | fi |
107 | 200 |
|
108 | 201 | if $PORT_STILL_IN_USE; then |
109 | | - echo "Warning: Port 3001 still in use, forcing cleanup" |
| 202 | + echo "Warning: Port 3001 still in use after stopping Mockoon, forcing cleanup" |
| 203 | + echo "---- Port 3001 status before cleanup ----" |
| 204 | + log_port_3001_info |
| 205 | + |
| 206 | + echo "---- Performing cleanup ----" |
110 | 207 | lsof -ti :3001 | xargs kill -9 2>/dev/null || true |
111 | 208 | # Additional cleanup methods |
112 | 209 | pkill -f "mockoon-cli.*3001" 2>/dev/null || true |
113 | 210 | pkill -f "node.*mockoon.*3001" 2>/dev/null || true |
| 211 | + |
| 212 | + # Wait a moment and check again |
| 213 | + sleep 2 |
| 214 | + echo "---- Port 3001 status after cleanup ----" |
| 215 | + if lsof -i :3001 >/dev/null 2>&1 || netstat -ln 2>/dev/null | grep -q ':3001 ' || ss -ln 2>/dev/null | grep -q ':3001 '; then |
| 216 | + echo "WARNING: Port 3001 still in use after cleanup attempts" |
| 217 | + log_port_3001_info |
| 218 | + else |
| 219 | + echo "Port 3001 successfully cleaned up" |
| 220 | + fi |
114 | 221 | fi |
115 | 222 | else |
116 | 223 | echo "-------- Mockoon was already running (CI), not stopping it" |
|
0 commit comments