Add port verification and remove error masking from E2E workflows

- Remove || true from test commands to properly report test failures
- Add port verification step using ss command before running tests
  - 1C1D: Verify port 6667 is listening
  - 3C3D: Verify ports 6667, 6668, 6669 are all listening
- Add Docker container status and log output for debugging
- Use continue-on-error: true for debug log commands instead of || true
- Workflow now fails fast if required ports are not open
- Ensures tests connect to correct IoTDB configuration (1C1D vs 3C3D)
- Addresses feedback: proper error reporting and port validation
diff --git a/.github/workflows/e2e-1c1d.yml b/.github/workflows/e2e-1c1d.yml
index 750ae8f..c48f1da 100644
--- a/.github/workflows/e2e-1c1d.yml
+++ b/.github/workflows/e2e-1c1d.yml
@@ -35,6 +35,21 @@
           docker compose -f docker-compose-1c1d.yml up -d
           echo "Waiting for IoTDB to be ready..."
           sleep 45
+      
+      - name: Verify IoTDB ports are listening
+        run: |
+          echo "Checking IoTDB port 6667..."
+          ss -tuln | grep 6667 || (echo "ERROR: Port 6667 is not listening!" && exit 1)
+          echo "Port 6667 is listening ✓"
+          
+      - name: Show Docker container status
+        continue-on-error: true
+        run: |
+          echo "=== Docker containers status ==="
+          docker compose -f docker-compose-1c1d.yml ps
+          echo ""
+          echo "=== Recent logs from iotdb-datanode ==="
+          docker compose -f docker-compose-1c1d.yml logs --tail=50 iotdb-datanode
           
       - name: Run E2E Tests
         env:
@@ -43,7 +58,7 @@
           IOTDB_USER: root
           IOTDB_PASSWORD: root
         run: |
-          npm run test:e2e 2>&1 | tee test-results/test-output.log || true
+          npm run test:e2e 2>&1 | tee test-results/test-output.log
           
       - name: Stop and clean up Docker Compose
         if: always()
diff --git a/.github/workflows/e2e-3c3d.yml b/.github/workflows/e2e-3c3d.yml
index f5f35b7..da4b0d8 100644
--- a/.github/workflows/e2e-3c3d.yml
+++ b/.github/workflows/e2e-3c3d.yml
@@ -35,6 +35,29 @@
           docker compose -f docker-compose-3c3d.yml up -d
           echo "Waiting for IoTDB cluster to be ready..."
           sleep 75
+      
+      - name: Verify IoTDB ports are listening
+        run: |
+          echo "Checking IoTDB DataNode ports 6667, 6668, 6669..."
+          ss -tuln | grep 6667 || (echo "ERROR: Port 6667 is not listening!" && exit 1)
+          ss -tuln | grep 6668 || (echo "ERROR: Port 6668 is not listening!" && exit 1)
+          ss -tuln | grep 6669 || (echo "ERROR: Port 6669 is not listening!" && exit 1)
+          echo "All three DataNode ports (6667, 6668, 6669) are listening ✓"
+          
+      - name: Show Docker container status
+        continue-on-error: true
+        run: |
+          echo "=== Docker containers status ==="
+          docker compose -f docker-compose-3c3d.yml ps
+          echo ""
+          echo "=== Recent logs from iotdb-datanode1 ==="
+          docker compose -f docker-compose-3c3d.yml logs --tail=30 iotdb-datanode1
+          echo ""
+          echo "=== Recent logs from iotdb-datanode2 ==="
+          docker compose -f docker-compose-3c3d.yml logs --tail=30 iotdb-datanode2
+          echo ""
+          echo "=== Recent logs from iotdb-datanode3 ==="
+          docker compose -f docker-compose-3c3d.yml logs --tail=30 iotdb-datanode3
           
       - name: Run E2E Tests
         env:
@@ -43,7 +66,7 @@
           IOTDB_USER: root
           IOTDB_PASSWORD: root
         run: |
-          npm run test:e2e 2>&1 | tee test-results/test-output.log || true
+          npm run test:e2e 2>&1 | tee test-results/test-output.log
           
       - name: Stop and clean up Docker Compose
         if: always()