You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							111 lines
						
					
					
						
							2.4 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							111 lines
						
					
					
						
							2.4 KiB
						
					
					
				| #!/bin/bash | |
|  | |
| # Script to test SeaweedFS MQ broker startup locally | |
| # This helps debug broker startup issues before running CI | |
| 
 | |
| set -e | |
| 
 | |
| echo "=== Testing SeaweedFS MQ Broker Startup ===" | |
| 
 | |
| # Build weed binary | |
| echo "Building weed binary..." | |
| cd "$(dirname "$0")/../../.." | |
| go build -o /tmp/weed ./weed | |
| 
 | |
| # Setup data directory | |
| WEED_DATA_DIR="/tmp/seaweedfs-broker-test-$$" | |
| mkdir -p "$WEED_DATA_DIR" | |
| echo "Using data directory: $WEED_DATA_DIR" | |
| 
 | |
| # Cleanup function | |
| cleanup() { | |
|     echo "Cleaning up..." | |
|     pkill -f "weed.*server" || true | |
|     pkill -f "weed.*mq.broker" || true | |
|     sleep 2 | |
|     rm -rf "$WEED_DATA_DIR" | |
|     rm -f /tmp/weed-*.log | |
| } | |
| trap cleanup EXIT | |
| 
 | |
| # Start SeaweedFS server   | |
| echo "Starting SeaweedFS server..." | |
| /tmp/weed -v 1 server \ | |
|   -ip="127.0.0.1" \ | |
|   -ip.bind="0.0.0.0" \ | |
|   -dir="$WEED_DATA_DIR" \ | |
|   -master.raftHashicorp \ | |
|   -master.port=9333 \ | |
|   -volume.port=8081 \ | |
|   -filer.port=8888 \ | |
|   -filer=true \ | |
|   -metricsPort=9325 \ | |
|   > /tmp/weed-server-test.log 2>&1 & | |
| 
 | |
| SERVER_PID=$! | |
| echo "Server PID: $SERVER_PID" | |
| 
 | |
| # Wait for master | |
| echo "Waiting for master..." | |
| for i in $(seq 1 30); do | |
|   if curl -s http://127.0.0.1:9333/cluster/status >/dev/null; then | |
|     echo "✓ Master is up" | |
|     break | |
|   fi | |
|   echo "  Waiting for master... ($i/30)" | |
|   sleep 1 | |
| done | |
| 
 | |
| # Wait for filer | |
| echo "Waiting for filer..." | |
| for i in $(seq 1 30); do | |
|   if nc -z 127.0.0.1 8888; then | |
|     echo "✓ Filer is up" | |
|     break | |
|   fi | |
|   echo "  Waiting for filer... ($i/30)" | |
|   sleep 1 | |
| done | |
| 
 | |
| # Start MQ broker   | |
| echo "Starting MQ broker..." | |
| /tmp/weed -v 2 mq.broker \ | |
|   -master="127.0.0.1:9333" \ | |
|   -ip="127.0.0.1" \ | |
|   -port=17777 \ | |
|   > /tmp/weed-mq-broker-test.log 2>&1 & | |
| 
 | |
| BROKER_PID=$! | |
| echo "Broker PID: $BROKER_PID" | |
| 
 | |
| # Wait for broker | |
| echo "Waiting for broker..." | |
| broker_ready=false | |
| for i in $(seq 1 30); do | |
|   if nc -z 127.0.0.1 17777; then | |
|     echo "✓ MQ broker is up" | |
|     broker_ready=true | |
|     break | |
|   fi | |
|   echo "  Waiting for MQ broker... ($i/30)" | |
|   sleep 1 | |
| done | |
| 
 | |
| if [ "$broker_ready" = false ]; then | |
|   echo "❌ MQ broker failed to start" | |
|   echo | |
|   echo "=== Server logs ===" | |
|   cat /tmp/weed-server-test.log | |
|   echo | |
|   echo "=== Broker logs ===" | |
|   cat /tmp/weed-mq-broker-test.log | |
|   exit 1 | |
| fi | |
| 
 | |
| # Broker started successfully - discovery will be tested by Kafka gateway | |
| echo "✓ Broker started successfully and accepting connections" | |
| 
 | |
| echo | |
| echo "[OK] All tests passed!" | |
| echo "Server logs: /tmp/weed-server-test.log"   | |
| echo "Broker logs: /tmp/weed-mq-broker-test.log"
 |