SeaweedFS is a distributed storage system for object storage (S3), file systems, and Iceberg tables, designed to handle billions of files with O(1) disk access and effortless horizontal scaling.
954 matches across 17 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | install.sh | 1 | #!/bin/bash |
| LOW | S3_LIFECYCLE_REDESIGN.md | 381 | |
| LOW | S3_LIFECYCLE_REDESIGN.md | 581 | // One probe per task entry: which per-filer log shards exist, what's the earliest |
| LOW | S3_LIFECYCLE_REDESIGN.md | 601 | // reseeding via lazy-seeding when F reappears. Safe to delete cursor[F]. |
| LOW | S3_LIFECYCLE_REDESIGN.md | 621 | // 2. Surface `lifecycle_lost_log_total{filer_id}` and |
| LOW | S3_LIFECYCLE_REDESIGN.md | 1521 | // RetryTarget carries the routing/identification fields needed to (a) write a |
| LOW | seaweedfs-rdma-sidecar/rdma-engine/src/ipc.rs | 121 | /// Response with engine capabilities |
| LOW | seaweedfs-rdma-sidecar/rdma-engine/src/lib.rs | 1 | //! High-Performance RDMA Engine for SeaweedFS |
| LOW | seaweedfs-rdma-sidecar/rdma-engine/src/main.rs | 1 | //! RDMA Engine Server |
| LOW | seaweedfs-rdma-sidecar/pkg/rdma/client.go | 421 | // MOCK DATA IMPLEMENTATION - FOR DEVELOPMENT/TESTING ONLY |
| LOW | weed/s3api/s3api_bucket_config.go | 201 | Encryption *s3_pb.EncryptionConfiguration `json:"encryption,omitempty"` |
| LOW | weed/s3api/s3api_bucket_config.go | 1141 | // GetBucketMetadata retrieves complete bucket metadata as a structured object |
| LOW | weed/s3api/chunked_reader_v4.go | 381 | // |
| LOW | weed/s3api/auth_credentials.go | 1041 | } |
| LOW | weed/s3api/auth_credentials.go | 1461 | |
| LOW | weed/s3api/auth_credentials.go | 2041 | } |
| LOW | weed/s3api/s3api_versioning_heal_log_test.go | 21 | // public functions don't panic and that the format strings work. |
| LOW | weed/s3api/s3api_versioning_heal_log_test.go | 101 | |
| LOW | weed/s3api/s3api_object_handlers_put.go | 361 | // before CompleteMultipartUpload. |
| LOW | weed/s3api/s3api_object_handlers_put.go | 981 | // x-amz-trailer header (including comma-separated values), and individual x-amz-checksum-* |
| LOW | weed/s3api/s3api_object_handlers_put.go | 1181 | } |
| LOW | weed/s3api/s3api_object_handlers_put.go | 1301 | } |
| LOW | weed/s3api/s3api_object_handlers_put.go | 1381 | |
| LOW | weed/s3api/s3api_object_handlers_put.go | 1521 | return fmt.Errorf("failed to get .versions directory after %d attempts: %w", maxRetries, err) |
| LOW | weed/s3api/s3api_object_handlers_put.go | 2181 | glog.V(3).Infof("validateConditionalHeadersForReads: If-Unmodified-Since failed - object %s/%s does not exist", bucke |
| LOW | weed/s3api/s3api_internal_lifecycle.go | 341 | } |
| LOW | weed/s3api/sts_params_test.go | 141 | // The Router does not match "/" for STS because Action is not in query. |
| LOW | weed/s3api/s3api_server_routing_test.go | 141 | |
| LOW | weed/s3api/s3api_tables.go | 641 | // and in the X-Amz-Credential query parameter for presigned requests. |
| LOW | weed/s3api/s3_validation_utils.go | 41 | |
| LOW | weed/s3api/s3_sse_kms.go | 81 | // Ensure we clear the plaintext data key from memory when done |
| LOW | weed/s3api/s3_action_resolver.go | 21 | // - bucket: Bucket name from the request path |
| LOW | weed/s3api/s3api_object_handlers_delete.go | 241 | // Versioned/suspended delete with no specific version: route off the lock when |
| LOW | weed/s3api/auth_signature_v4.go | 1 | /* |
| LOW | weed/s3api/s3api_object_versioning.go | 41 | |
| LOW | weed/s3api/s3api_object_versioning.go | 281 | processedObjects := make(map[string]bool) |
| LOW | weed/s3api/s3api_object_versioning.go | 1101 | // Multi-version case where another version still exists, or the |
| LOW | weed/s3api/s3api_object_versioning.go | 1121 | } |
| LOW | weed/s3api/s3api_object_versioning.go | 1261 | // transient errors. Doubled per attempt, capped at retryCap. Total |
| LOW | weed/s3api/s3api_object_versioning.go | 1341 | // |
| LOW | weed/s3api/s3api_object_versioning.go | 1461 | return s3a.mkFile(bucketDir, versionsObjectPath, versionsEntry.Chunks, func(updatedEntry *filer_pb.Entry) { |
| LOW | weed/s3api/s3api_object_versioning.go | 1521 | |
| LOW | weed/s3api/s3api_object_versioning.go | 1541 | // fields written concurrently between (2) and the persist are |
| LOW | weed/s3api/s3api_bucket_policy_engine.go | 101 | // EvaluatePolicy evaluates whether an action is allowed by bucket policy |
| LOW | weed/s3api/s3api_object_handlers_copy.go | 881 | // |
| LOW | weed/s3api/s3api_object_handlers_copy.go | 1281 | overlapStart := max(rangeStart, chunkStart) |
| LOW | weed/s3api/s3api_object_handlers_copy.go | 1601 | } |
| LOW | weed/s3api/s3api_object_handlers_copy.go | 2841 | // this stored only KeyID/context/bucketKey, leaving EncryptedDataKey |
| LOW | weed/s3api/s3api_object_handlers_copy.go | 2961 | // bytes raw without decryption — yielding deterministic byte |
| LOW | weed/s3api/s3api_governance_permissions_test.go | 181 | // |
| LOW | weed/s3api/s3api_governance_permissions_test.go | 201 | // Test specifically for users with IAM bypass permission |
| LOW | weed/s3api/s3api_governance_permissions_test.go | 401 | } |
| LOW | weed/s3api/s3api_object_handlers_copy_alloc_test.go | 21 | // |
| LOW | weed/s3api/bucket_size_metrics_test.go | 1 | package s3api |
| LOW | weed/s3api/auto_signature_v4_test.go | 1201 | |
| LOW | weed/s3api/s3api_server.go | 221 | // Shared ReaderCache for the S3 GET streaming path. Keeping this shared |
| LOW | weed/s3api/s3api_server.go | 341 | |
| LOW | weed/s3api/s3api_server.go | 741 | // otherwise collapse it via filepath.Join and cross bucket boundaries. |
| LOW | weed/s3api/auth_signature_v2.go | 1 | /* |
| LOW | weed/s3api/filer_multipart_sse_s3_test.go | 161 | // trip across the encryption boundary: it encrypts simulated multipart parts |
| 380 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | weed/s3api/auth_security_test.go | 341 | // Step 1: Sign a request targeting the client-facing URL using real AWS SDK signer |
| LOW | weed/s3api/auth_security_test.go | 349 | // Step 2: Create a separate request as the proxy would deliver it |
| LOW | weed/s3api/auth_security_test.go | 359 | // Step 3: Verify |
| LOW | weed/s3api/auth_security_test.go | 501 | // Step 1: Sign a request using the real AWS SDK v2 signer. |
| LOW | weed/s3api/auth_security_test.go | 510 | // Step 2: Build the request as the proxy would deliver it to SeaweedFS. |
| LOW | weed/s3api/auth_security_test.go | 530 | // Step 3: Verify extractHostHeader returns the expected value. |
| LOW | weed/s3api/auth_security_test.go | 537 | // Step 4: Verify the full signature matches. |
| LOW | weed/s3api/s3api_object_handlers_put.go | 532 | // Step 3: Calculate MD5 hash and add SSE metadata to chunks |
| LOW | weed/s3api/s3api_object_handlers_put.go | 631 | // Step 4: Create metadata entry |
| LOW | weed/s3api/s3api_object_handlers_put.go | 791 | // Step 4: Save metadata to filer via gRPC |
| LOW | weed/s3api/s3api_object_handlers_copy.go | 2226 | // Step 1: Decrypt source data |
| LOW | weed/s3api/s3api_object_handlers_copy.go | 2323 | // Step 2: Re-encrypt with destination encryption (if any) |
| LOW | weed/s3api/s3_sse_s3_integration_test.go | 47 | // Step 1: Encrypt (simulates what happens during PUT) |
| LOW | weed/s3api/s3_sse_s3_integration_test.go | 72 | // Step 2: Simulate storage (inline file - no chunks) |
| LOW | weed/s3api/s3_sse_s3_integration_test.go | 83 | // Step 3: Decrypt (simulates what happens during GET) |
| LOW | weed/s3api/s3api_object_retention.go | 551 | // Step 1: Check if governance bypass was requested via header |
| LOW | weed/s3api/s3api_object_retention.go | 558 | // Step 2: Validate user has permission to bypass governance retention |
| LOW | weed/s3api/s3_list_parts_action_test.go | 200 | // Step 1: Initiate multipart upload (POST with uploads query) |
| LOW | weed/s3api/s3_list_parts_action_test.go | 210 | // Step 2: List existing parts (GET with uploadId query) - THIS WAS THE MISSING MAPPING |
| LOW | weed/s3api/s3_list_parts_action_test.go | 220 | // Step 3: Upload a part (PUT with uploadId and partNumber) |
| LOW | weed/s3api/s3_list_parts_action_test.go | 231 | // Step 4: Complete multipart upload (POST with uploadId) |
| LOW | weed/util/chunk_cache/chunk_cache.go | 226 | // Step 1: Read and validate header (volume ID + cookie) |
| LOW | weed/util/chunk_cache/chunk_cache.go | 252 | // Step 2: Read actual data from the offset position (after header) |
| LOW | weed/shell/command_remote_cache.go | 109 | // Step 1: Collect all remote files |
| LOW | weed/shell/command_remote_cache.go | 123 | // Step 2: Collect all local files (only if we need to delete local extra files) |
| LOW | weed/shell/command_remote_cache.go | 141 | // Step 3: Determine actions needed |
| LOW | weed/shell/command_remote_cache.go | 179 | // For caching, we need to check if the local file exists and needs caching |
| LOW | weed/shell/command_remote_cache.go | 221 | // Step 4: Execute actions |
| LOW | weed/shell/command_s3_user_provision.go | 114 | // Step 0: Check if user already exists |
| LOW | weed/shell/command_s3_user_provision.go | 123 | // Step 1: Create policy |
| LOW | weed/shell/command_s3_user_provision.go | 157 | // Step 2: Create new user with credentials |
| LOW | weed/shell/command_remote_copy_local.go | 102 | // Step 1: Collect all local files that are part of the remote mount |
| LOW | weed/shell/command_remote_copy_local.go | 118 | // Step 2: Check which files exist on remote storage |
| LOW | weed/shell/command_remote_copy_local.go | 132 | // Step 3: Determine files to copy |
| LOW | weed/shell/command_remote_copy_local.go | 170 | // Step 4: Copy files to remote storage |
| LOW | weed/admin/topology/storage_slot_test.go | 555 | // Step 1: Add pending task (should reserve capacity via StorageSlotChange) |
| LOW | weed/admin/topology/storage_slot_test.go | 579 | // Step 2: Assign task (capacity already reserved by pending task) |
| LOW | weed/admin/topology/storage_slot_test.go | 592 | // Step 3: Complete task (should release reserved capacity) |
| LOW | weed/admin/topology/storage_slot_test.go | 601 | // Step 4: Apply actual storage change (simulates master topology update) |
| LOW | weed/storage/volume_replica/replica_sync.go | 115 | // Step 1: Find the largest replica (highest file count) that's not excluded. |
| LOW | weed/storage/volume_replica/replica_sync.go | 136 | // Step 2: Read index database from the best replica |
| LOW | weed/storage/volume_replica/replica_sync.go | 147 | // Step 3: For each other replica (including excluded), find entries missing from best and copy them |
| LOW | weed/iam/integration/iam_integration_test.go | 64 | // Step 1: Attempt role assumption |
| LOW | weed/iam/integration/iam_integration_test.go | 84 | // Step 2: Test policy enforcement with assumed credentials |
| LOW | weed/iam/integration/iam_integration_test.go | 138 | // Step 1: Attempt role assumption with LDAP credentials |
| LOW | weed/iam/integration/iam_integration_test.go | 158 | // Step 2: Test policy enforcement |
| LOW | weed/iam/policy/policy_engine.go | 1218 | // Step 1: Substitute policy variables (e.g., ${aws:username}, ${saml:username}) |
| LOW | weed/iam/policy/policy_engine.go | 1221 | // Step 2: Handle special patterns |
| LOW | weed/iam/policy/policy_engine.go | 1226 | // Step 3: Case-insensitive exact match |
| LOW | weed/iam/policy/policy_engine.go | 1231 | // Step 4: Handle AWS-style wildcards (case-insensitive) |
| LOW | weed/mq/topic/local_partition.go | 136 | // Step 2: Enter the main loop - read from in-memory buffer, occasionally checking disk |
| LOW | weed/mq/kafka/protocol/offset_fetch_pattern_test.go | 45 | // Step 1: Fetch batch of messages starting from nextOffset |
| LOW | weed/mq/kafka/protocol/offset_fetch_pattern_test.go | 64 | // Step 2: Commit the last offset in this batch |
| LOW | weed/mq/kafka/protocol/offset_fetch_pattern_test.go | 70 | // Step 3: Verify offset is correctly stored |
| LOW | weed/mq/kafka/protocol/offset_fetch_pattern_test.go | 76 | // Step 4: Next fetch should start from lastConsumedOffset + 1 |
| LOW | weed/mq/kafka/protocol/fetch.go | 1011 | // We need to check if this looks like a real RecordValue or just random bytes |
| LOW | weed/mq/kafka/protocol/batch_crc_compat_test.go | 262 | // Step 1: Read the batch header to get the CRC |
| LOW | weed/mq/kafka/protocol/batch_crc_compat_test.go | 270 | // Step 2: Calculate CRC over the data (from byte 21 onwards) |
| LOW | weed/mq/kafka/protocol/batch_crc_compat_test.go | 274 | // Step 3: Compare |
| LOW | weed/mq/kafka/schema/reconstruction_test.go | 88 | // Step 1: Decode the original message (simulate Produce path) |
| 161 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docker/test.py | 91 | except Exception as e: |
| MEDIUM | docker/test.py | 92 | print(f"Error listing files: {e}") |
| MEDIUM | test/s3/fix_s3_tests_bucket_conflicts.py | 35 | print(f"Error: File {file_path} not found") |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 94 | except Exception: |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 132 | except Exception: |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 151 | except Exception: |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 161 | except Exception: |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 171 | except Exception: |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 183 | except Exception as e: # noqa: BLE001 - Intentionally broad for compatibility testing |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 192 | except Exception as e: # noqa: BLE001 - Intentionally broad for compatibility testing |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 201 | except Exception as e: # noqa: BLE001 - Intentionally broad for compatibility testing |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 216 | except Exception as e: # noqa: BLE001 - Intentionally broad for compatibility testing |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 225 | except Exception as e: # noqa: BLE001 - Intentionally broad for compatibility testing |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 234 | except Exception as e: # noqa: BLE001 - Intentionally broad for compatibility testing |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 302 | except Exception as e: # noqa: BLE001 - Top-level exception handler for test orchestration |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 339 | except Exception as e: # noqa: BLE001 - Top-level exception handler for test orchestration |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 352 | except Exception: |
| LOW | test/s3/parquet/s3_parquet_test.py | 118 | except Exception: |
| LOW | test/s3/parquet/s3_parquet_test.py | 132 | except Exception: |
| LOW | test/s3/parquet/s3_parquet_test.py | 144 | except Exception as e: |
| LOW | test/s3/parquet/s3_parquet_test.py | 159 | except Exception as e: |
| LOW | test/s3/parquet/s3_parquet_test.py | 199 | except Exception as e: |
| LOW | test/s3/parquet/s3_parquet_test.py | 225 | except Exception as e: |
| LOW | test/s3/parquet/s3_parquet_test.py | 253 | except Exception as e: |
| LOW | test/s3/parquet/s3_parquet_test.py | 266 | except Exception as e: |
| LOW | test/s3/parquet/s3_parquet_test.py | 278 | except Exception as e: |
| LOW | test/s3/parquet/s3_parquet_test.py | 319 | except Exception as e: |
| LOW | test/s3/parquet/s3_parquet_test.py | 342 | except Exception as e: |
| MEDIUM | test/s3/parquet/s3_parquet_test.py | 410 | print(f"Error details logged to: {ERROR_LOG_FILE}") |
| LOW | test/s3/parquet/debug_write_dataset.py | 55 | except Exception as e: |
| LOW | test/s3/parquet/debug_write_dataset.py | 69 | except Exception as e: |
| LOW | test/s3/parquet/debug_write_dataset.py | 79 | except Exception as e: |
| LOW | test/s3/parquet/debug_write_dataset.py | 82 | except Exception as e: |
| MEDIUM | test/s3/parquet/debug_write_dataset.py | 38 | def list_recursive(path, indent=0): |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 132 | except Exception as e: |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 155 | except Exception as e: |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 174 | except Exception as e: |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 195 | except Exception as e: |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 226 | except Exception as e: |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 245 | except Exception as e: |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 111 | except Exception: |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 148 | except Exception: |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 170 | except Exception as e: |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 179 | except Exception: |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 266 | except Exception as exc: |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 302 | except Exception: |
| LOW | test/s3/parquet/test_sse_s3_compatibility.py | 98 | except Exception: |
| LOW | test/s3/parquet/test_sse_s3_compatibility.py | 134 | except Exception: |
| LOW | test/s3/parquet/test_sse_s3_compatibility.py | 165 | except Exception as e: |
| LOW | test/s3/spark/issue_8234_repro_test.go | 47 | except Exception as err: |
| LOW | test/s3tables/catalog/test_rest_catalog_auth.py | 141 | except Exception as e: |
| LOW | test/s3tables/catalog/test_rest_catalog_auth.py | 182 | except Exception as e: |
| LOW | test/s3tables/catalog/test_rest_catalog_auth.py | 212 | except Exception as e: |
| LOW | test/s3tables/catalog/test_rest_catalog.py | 146 | except Exception as e: |
| LOW | test/s3tables/catalog/test_rest_catalog.py | 172 | except Exception as e: |
| LOW | test/s3tables/catalog/test_rest_catalog.py | 209 | except Exception as e: |
| LOW | test/s3tables/catalog/test_rest_catalog.py | 240 | except Exception as e: |
| LOW | test/s3tables/catalog_spark/spark_operations_test.go | 210 | except Exception as e: |
| LOW | test/s3tables/sts_integration/sts_integration_test.go | 276 | except Exception: |
| LOW | test/s3tables/sts_integration/sts_integration_test.go | 381 | except Exception as e: |
| 16 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | seaweedfs-rdma-sidecar/test-rdma-integration.sh | 92 | # Check if it has the expected fields |
| LOW | seaweedfs-rdma-sidecar/scripts/performance-benchmark.sh | 107 | # Display result with color coding |
| LOW | seaweedfs-rdma-sidecar/scripts/performance-benchmark.sh | 167 | # Check if connection pooling is working |
| LOW | seaweedfs-rdma-sidecar/scripts/performance-benchmark.sh | 186 | # Check if sidecar is ready |
| LOW | …fs-rdma-sidecar/scripts/test-complete-optimizations.sh | 181 | # Check if socket was created |
| LOW | seaweedfs-rdma-sidecar/scripts/mount-helper.sh | 65 | # Check if RDMA is actually enabled |
| LOW | seaweedfs-rdma-sidecar/scripts/mount-helper.sh | 118 | # Check if already mounted |
| LOW | seaweedfs-rdma-sidecar/scripts/mount-health-check.sh | 7 | # Check if mount point exists and is mounted |
| LOW | …eedfs-rdma-sidecar/scripts/test-zero-copy-mechanism.sh | 66 | # Check if file is in page cache (approximation) |
| LOW | seaweedfs-rdma-sidecar/scripts/run-integration-tests.sh | 159 | # Read file |
| LOW | seaweedfs-rdma-sidecar/scripts/run-integration-tests.sh | 202 | # Check if response contains expected fields |
| LOW | seaweedfs-rdma-sidecar/scripts/demo-mount-rdma.sh | 151 | # Check if mount is successful |
| LOW | seaweedfs-rdma-sidecar/scripts/demo-mount-rdma.sh | 239 | # Check if mount is still active |
| LOW | docker/admin_integration/check_volumes.sh | 7 | # Check if master is running |
| LOW | docker/admin_integration/demo_vacuum_testing.sh | 7 | # Check if SeaweedFS is running |
| LOW | test/kms/setup_openbao.sh | 25 | # Check if we can connect |
| LOW | test/s3/iam/setup_keycloak.sh | 145 | # Check if it exists now (might have been created by another process) |
| LOW | test/s3/iam/setup_keycloak.sh | 215 | # Check if role already assigned |
| LOW | test/s3/iam/setup_keycloak.sh | 236 | # Check if a realm roles mapper already exists for this client |
| LOW | test/s3/iam/setup_keycloak.sh | 277 | # Check if an audience mapper already exists for this client |
| LOW | test/s3/iam/setup_all_tests.sh | 57 | # Check if LDAP container is already running |
| LOW | test/s3/iam/setup_all_tests.sh | 176 | # Check if Keycloak is responding |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 133 | # Check if bucket exists |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 156 | # Check if bucket exists by trying to list it |
| LOW | test/java/spark/run-tests.sh | 8 | # Check if SeaweedFS is running |
| LOW | test/java/spark/quick-start.sh | 8 | # Check if SeaweedFS is running |
| LOW | test/java/spark/quick-start.sh | 92 | # Check if Docker is available |
| LOW | test/java/spark/quick-start.sh | 98 | # Check if Maven is available |
| LOW | test/java/spark/quick-start.sh | 104 | # Check if SeaweedFS is running, if not start it |
| LOW | test/postgres/validate-setup.sh | 27 | # Check if running from correct directory |
| LOW | test/postgres/validate-setup.sh | 65 | # Check if services are running |
| LOW | test/kafka/test-schema-bypass.sh | 11 | # Check if Kafka gateway is running |
| LOW | test/kafka/loadtest/run_million_record_test.sh | 25 | # Check if SeaweedFS infrastructure is running |
| LOW | test/kafka/scripts/test_schema_registry.sh | 10 | # Check if we have a real schema registry URL |
| LOW | test/kafka/scripts/test_schema_registry.sh | 46 | # Check if services are running |
| LOW | …fka/kafka-client-loadtest/scripts/wait-for-services.sh | 39 | # Check if a service is reachable |
| LOW | …fka/kafka-client-loadtest/scripts/wait-for-services.sh | 71 | # Check if we have at least one volume server |
| LOW | …fka/kafka-client-loadtest/scripts/wait-for-services.sh | 96 | # Check if Schema Registry container is running first |
| LOW | …fka/kafka-client-loadtest/scripts/wait-for-services.sh | 185 | # Check if it's still starting up (healthcheck start_period) |
| LOW | …st/kafka/kafka-client-loadtest/scripts/run-loadtest.sh | 181 | # Check if Docker and Docker Compose are available |
| LOW | …afka/kafka-client-loadtest/scripts/register-schemas.sh | 95 | # Check if it's a consumer lag timeout (error_code 50002) |
| LOW | .github/workflows/s3-keycloak-tests.yml | 62 | # Set WEED_BINARY to use the installed version |
| LOW | .github/workflows/deploy_telemetry.yml | 137 | # Check if service exists and deploy accordingly |
| LOW | .github/workflows/s3-policy-tests.yml | 113 | # Set WEED_BINARY to use the installed version |
| LOW | .github/workflows/s3-policy-tests.yml | 422 | # Set WEED_BINARY to use the installed version (though test uses 'weed' command) |
| LOW | .github/workflows/s3-proxy-signature-tests.yml | 47 | # Check if containers are running |
| LOW | .github/workflows/s3-iam-tests.yml | 115 | # Set WEED_BINARY to use the installed version |
| LOW | .github/workflows/s3tests.yml | 877 | # Check if server process is still alive before waiting |
| LOW | .github/workflows/s3tests.yml | 893 | # Check if server process is still alive |
| LOW | .github/workflows/kafka-tests.yml | 237 | # Check if broker is properly registered by querying cluster nodes |
| LOW | .github/workflows/kafka-tests.yml | 254 | # Check if broker failed to start and show logs |
| LOW | .github/workflows/kafka-tests.yml | 416 | # Check if broker is properly registered by querying cluster nodes |
| LOW | .github/workflows/kafka-tests.yml | 433 | # Check if broker failed to start and show logs |
| LOW | .github/workflows/kafka-tests.yml | 577 | # Check if broker is properly registered by querying cluster nodes |
| LOW | .github/workflows/kafka-tests.yml | 594 | # Check if broker failed to start and show logs |
| LOW | .github/workflows/kafka-tests.yml | 735 | # Check if broker is properly registered by querying cluster nodes |
| LOW | .github/workflows/kafka-tests.yml | 752 | # Check if broker failed to start and show logs |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | seaweedfs-rdma-sidecar/rdma-engine/src/lib.rs | 10 | //! ┌─────────────────────┐ IPC ┌─────────────────────┐ |
| MEDIUM | seaweedfs-rdma-sidecar/rdma-engine/src/lib.rs | 11 | //! │ Go Control Plane │◄─────────►│ Rust Data Plane │ |
| MEDIUM | seaweedfs-rdma-sidecar/rdma-engine/src/lib.rs | 17 | //! └─────────────────────┘ └─────────────────────┘ |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 39 | // ── shortName ──────────────────────────────────────────────────────────────── |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 56 | // ── relevantNodes ──────────────────────────────────────────────────────────── |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 70 | // ── computeOwnerTarget ─────────────────────────────────────────────────────── |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 110 | // ── buildDistributionCounts ────────────────────────────────────────────────── |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 156 | // ── selectActiveNodes ──────────────────────────────────────────────────────── |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 181 | // ── planOwnerMoves ─────────────────────────────────────────────────────────── |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 223 | // ── planDistribution: primary ───────────────────────────────────────────────── |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 287 | // ── planDistribution: round-robin ───────────────────────────────────────────── |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 361 | // ── planDistribution: replica ───────────────────────────────────────────────── |
| MEDIUM | weed/shell/command_fs_distribute_chunks_test.go | 410 | // ── printRedistributionPlan ────────────────────────────────────────────────── |
| MEDIUM | .github/workflows/container_latest.yml | 62 | # ── Pre-build Rust volume server binaries natively ────────────────── |
| MEDIUM | .github/workflows/container_release_unified.yml | 44 | # ── Pre-build Rust volume server binaries natively ────────────────── |
| MEDIUM | .github/workflows/container_release_unified.yml | 116 | # ── Build Docker containers ───────────────────────────────────────── |
| MEDIUM | .github/workflows/container_dev.yml | 12 | # ── Pre-build Rust volume server binaries natively ────────────────── |
| MEDIUM | .github/workflows/spark-integration-tests.yml | 30 | # ======================================== |
| MEDIUM | .github/workflows/spark-integration-tests.yml | 32 | # ======================================== |
| MEDIUM | .github/workflows/spark-integration-tests.yml | 73 | # ======================================== |
| MEDIUM | .github/workflows/spark-integration-tests.yml | 75 | # ======================================== |
| MEDIUM | .github/workflows/spark-integration-tests.yml | 143 | # ======================================== |
| MEDIUM | .github/workflows/spark-integration-tests.yml | 149 | # ======================================== |
| MEDIUM | .github/workflows/spark-integration-tests.yml | 236 | # ======================================== |
| MEDIUM | .github/workflows/spark-integration-tests.yml | 238 | # ======================================== |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | cmd/weed-sql/sqlcmd.go | 185 | // Split file content into individual queries (robust approach). |
| MEDIUM | seaweedfs-rdma-sidecar/test-fixes-standalone.go | 86 | // NEW (robust): |
| MEDIUM | weed/s3api/s3api_sts.go | 288 | // Use typed errors for robust error checking |
| MEDIUM | weed/s3api/s3_iam_middleware.go | 117 | // Determine token type by issuer claim (more robust than checking role claim) |
| MEDIUM | weed/s3api/s3_metadata_util.go | 55 | // Use url.ParseQuery for robust parsing and automatic URL decoding |
| MEDIUM | weed/kms/gcp/gcp_kms.go | 300 | // This is a simplified implementation - in production, you might want a more robust serialization |
| MEDIUM | weed/util/sqlutil/splitter.go | 8 | // This robust implementation handles SQL comments, quoted strings, and escaped characters. |
| MEDIUM | weed/shell/command_remote_cache.go | 37 | # comprehensive sync and cache: update metadata, cache content, and remove deleted files |
| MEDIUM | weed/shell/command_ec_decode.go | 206 | // Keep this robust against wording tweaks while still being specific. |
| MEDIUM | weed/server/postgres/protocol.go | 25 | // Use typed errors for robust error mapping |
| MEDIUM | weed/storage/disk_location_ec.go | 390 | // checkDatFileExists checks if .dat file exists with robust error handling. |
| MEDIUM | weed/iam/providers/errors.go | 6 | // These enable robust error checking with errors.Is() throughout the stack |
| MEDIUM | weed/iam/oidc/oidc_provider.go | 675 | // Use JWT library's typed errors for robust error checking |
| MEDIUM | weed/iam/utils/arn_utils_test.go | 13 | // format to ensure robust handling of both legacy and modern AWS ARN formats. |
| MEDIUM | weed/iam/sts/sts_service.go | 877 | // Map provider errors to STS errors using errors.Is() for robust error checking |
| MEDIUM | weed/iam/sts/session_claims.go | 94 | // This enables seamless integration with existing code expecting SessionInfo |
| MEDIUM | weed/iam/sts/constants.go | 90 | // Typed errors for robust error checking with errors.Is() |
| MEDIUM | weed/filer/filer_deletion.go | 480 | // TODO: Consider these improvements for more robust error handling: |
| MEDIUM | weed/query/engine/hybrid_message_scanner.go | 239 | // Uses SeaweedFS MQ's GenMergedReadFunc for seamless integration |
| MEDIUM | test/s3/remote_cache/command_edge_cases_test.go | 102 | // This is a simplified check; a more robust test would check if the file is *actually* gone from local cache |
| MEDIUM | test/s3/remote_cache/command_edge_cases_test.go | 105 | // The instruction implies just adding the test, not necessarily making it fully robust for all pattern scenarios. |
| MEDIUM | test/s3/iam/s3_iam_distributed_test.go | 114 | // Test concurrent operations across distributed instances with robust retry mechanisms |
| MEDIUM | test/samba/smb_tests.sh | 5 | # harness (run_inside_container.sh). |
| MEDIUM | test/kafka/kafka-client-loadtest/docker-compose.yml | 65 | # Enable comprehensive Kafka client DEBUG logging to trace offset management |
| MEDIUM | test/kafka/kafka-client-loadtest/config/loadtest.yaml | 4 | test_mode: "comprehensive" # producer, consumer, comprehensive |
| MEDIUM | …st/kafka/kafka-client-loadtest/scripts/run-loadtest.sh | 81 | # Run comprehensive test for 5 minutes |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | test/s3/parquet/test_cross_filesystem_compatibility.py | 249 | if not read.schema.equals(original.schema): |
| HIGH | test/s3/parquet/test_cross_filesystem_compatibility.py | 257 | if not read_sorted.equals(original_sorted): |
| HIGH | test/s3/parquet/test_cross_filesystem_compatibility.py | 263 | if not col_original.equals(col_read): |
| HIGH | test/s3/parquet/test_pyarrow_native_s3.py | 208 | if not table_read.schema.equals(table.schema): |
| HIGH | test/s3/parquet/test_pyarrow_native_s3.py | 215 | if not table_read_sorted.equals(table_sorted): |
| HIGH | test/s3/parquet/test_pyarrow_native_s3.py | 221 | if not col_original.equals(col_read): |
| HIGH | test/s3/parquet/test_pyarrow_native_s3.py | 235 | if not table_dataset_sorted.equals(table_sorted): |
| HIGH | test/s3/parquet/test_pyarrow_native_s3.py | 240 | if not col_original.equals(col_read): |
| HIGH | test/s3/parquet/test_pyarrow_native_s3.py | 254 | if not table_pads_sorted.equals(table_sorted): |
| HIGH | test/s3/parquet/test_pyarrow_native_s3.py | 259 | if not col_original.equals(col_read): |
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | weed/static/javascript/jquery-3.6.0.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f |
| CRITICAL | …a/spark/src/test/java/seaweed/spark/SparkTestBase.java | 108 | org.apache.hadoop.fs.FileSystem fs = org.apache.hadoop.fs.FileSystem.get( |
| CRITICAL | …java/seaweed/spark/ParquetOperationComparisonTest.java | 308 | try (ParquetWriter<Group> writer = org.apache.parquet.hadoop.example.ExampleParquetWriter.builder(path) |
| CRITICAL | …java/seaweed/spark/ParquetOperationComparisonTest.java | 347 | try (ParquetWriter<Group> writer = org.apache.parquet.hadoop.example.ExampleParquetWriter.builder(path) |
| CRITICAL | …est/java/seaweed/spark/SparkReadDirectParquetTest.java | 157 | try (ParquetWriter<Group> writer = org.apache.parquet.hadoop.example.ExampleParquetWriter.builder(path) |
| CRITICAL | …k/src/test/java/seaweed/spark/SimpleOneColumnTest.java | 27 | org.apache.hadoop.fs.FileSystem fs = org.apache.hadoop.fs.FileSystem.get( |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | seaweedfs-rdma-sidecar/scripts/demo-mount-rdma.sh | 169 | # Create a larger test file |
| MEDIUM | weed/command/mini.go | 1075 | sb.WriteString("# This file is loaded on startup if it exists\n\n") |
| MEDIUM | test/kms/setup_openbao.sh | 60 | # Create the encryption key |
| MEDIUM | test/s3/parquet/debug_write_dataset.py | 9 | # Create a simple test table |
| MEDIUM | test/s3/parquet/test_implicit_directory_fix.py | 83 | # Create a dataset using PyArrow (creates implicit directory) |
| MEDIUM | test/s3/parquet/test_implicit_directory_fix.py | 185 | # Create an explicit directory marker |
| MEDIUM | test/s3/parquet/test_implicit_directory_fix.py | 216 | # Create an empty file with text/plain mime type |
| MEDIUM | test/s3tables/catalog/test_rest_catalog_auth.py | 83 | # Define a simple schema |
| MEDIUM | test/s3tables/catalog/test_rest_catalog.py | 83 | # Define a simple schema |
| MEDIUM | …afka/kafka-client-loadtest/scripts/register-schemas.sh | 66 | # Create the schema registration payload |
| MEDIUM | …afka/kafka-client-loadtest/scripts/register-schemas.sh | 181 | # Define the Avro schema for load test messages |
| MEDIUM | …afka/kafka-client-loadtest/scripts/register-schemas.sh | 197 | # Define the JSON schema for load test messages |
| MEDIUM | …afka/kafka-client-loadtest/scripts/register-schemas.sh | 217 | # Define the Protobuf schema for load test messages |
| MEDIUM | …afka/kafka-client-loadtest/scripts/register-schemas.sh | 232 | # Define the key schema (simple string) |
| MEDIUM | test/foundationdb/test_fdb_s3.sh | 114 | # Create a directory |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | weed/s3api/auth_credentials.go | 128 | EmailAddress: "admin@example.com", |
| LOW | weed/s3api/auth_sts_identity_test.go | 334 | "email": "user@example.com", |
| LOW | weed/s3api/auth_sts_identity_test.go | 353 | assert.Equal(t, "user@example.com", sessionInfo.RequestContext["email"]) |
| LOW | weed/s3api/auth_sts_identity_test.go | 363 | assert.Equal(t, "user@example.com", identity.Claims["email"], "email should be in Claims") |
| LOW | weed/iam/oidc/oidc_provider_test.go | 128 | "email": "user@example.com", |
| LOW | weed/iam/oidc/oidc_provider_test.go | 140 | assert.Equal(t, "user@example.com", email) |
| LOW | weed/iam/oidc/oidc_provider_test.go | 353 | "email": "user@example.com", |
| LOW | weed/iam/oidc/oidc_provider_test.go | 362 | assert.Equal(t, "user@example.com", identity.Email) |
| LOW | weed/iam/oidc/oidc_provider_test.go | 376 | "email": "user@example.com", |
| LOW | weed/iam/oidc/oidc_provider_test.go | 454 | "email": "user@example.com", |
| LOW | weed/iam/oidc/oidc_provider_test.go | 486 | assert.Equal(t, "user@example.com", identity.Email) |
| LOW | weed/iam/oidc/oidc_provider_test.go | 538 | assert.Equal(t, "user@example.com", identity.Email) |
| LOW | weed/iam/oidc/oidc_provider_test.go | 646 | "email": "user@example.com", |
| LOW | weed/mq/kafka/schema/reconstruction_test.go | 64 | "name": "John Doe", |
| LOW | weed/mq/kafka/schema/reconstruction_test.go | 111 | if finalDecodedMsg.RecordValue.Fields["name"].GetStringValue() != "John Doe" { |
| LOW | weed/mq/kafka/schema/reconstruction_test.go | 112 | t.Errorf("Expected name='John Doe', got %v", finalDecodedMsg.RecordValue.Fields["name"].GetStringValue()) |
| LOW | weed/mq/kafka/schema/reconstruction_test.go | 314 | "name": "John Doe", |
| LOW | weed/mq/kafka/schema/manager_test.go | 64 | "name": "John Doe", |
| LOW | weed/mq/kafka/schema/manager_test.go | 106 | if nameValue == nil || nameValue.GetStringValue() != "John Doe" { |
| LOW | weed/mq/kafka/schema/manager_test.go | 107 | t.Errorf("Expected name='John Doe', got %v", nameValue) |
| LOW | weed/mq/kafka/schema/decode_encode_test.go | 50 | "name": "John Doe", |
| LOW | weed/mq/kafka/schema/decode_encode_test.go | 212 | "street": "123 Main St", |
| LOW | weed/mq/kafka/schema/json_schema_decoder_test.go | 106 | "name": "John Doe", |
| LOW | weed/mq/kafka/schema/json_schema_decoder_test.go | 132 | "name": "John Doe" |
| LOW | weed/mq/kafka/schema/json_schema_decoder_test.go | 140 | "name": "John Doe", |
| LOW | weed/mq/kafka/schema/json_schema_decoder_test.go | 149 | "name": "John Doe", |
| LOW | weed/mq/kafka/schema/json_schema_decoder_test.go | 519 | jsonData := []byte(`{"id": 123, "name": "John Doe"}`) |
| LOW | weed/mq/kafka/schema/json_schema_decoder_test.go | 538 | jsonData := []byte(`{"id": 123, "name": "John Doe"}`) |
| LOW | weed/mq/kafka/schema/integration_test.go | 454 | "email": map[string]interface{}{"string": "user@example.com"}, |
| LOW | weed/mq/kafka/schema/avro_decoder_test.go | 87 | "name": "John Doe", |
| LOW | weed/mq/kafka/schema/avro_decoder_test.go | 110 | if result["name"] != "John Doe" { |
| LOW | weed/mq/kafka/schema/avro_decoder_test.go | 111 | t.Errorf("Expected name='John Doe', got %v", result["name"]) |
| LOW | weed/mq/kafka/schema/avro_decoder_test.go | 519 | "name": "John Doe", |
| LOW | weed/query/engine/test_sample_data_test.go | 125 | "data": {Kind: &schema_pb.Value_StringValue{StringValue: `{"field": "email", "new_value": "user@example.com"} |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | weed/admin/static/js/s3tables.js | 378 | async function loadIcebergNamespaceTables(node, bucketArn, catalogName) { |
| LOW | weed/admin/static/js/admin.js | 954 | function updateDeleteSelectedButton() { |
| LOW | weed/admin/static/js/admin.js | 1406 | function setupFileManagerEventHandlers() { |
| LOW | weed/admin/view/app/service_accounts_templ.go | 275 | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "</select> <small class=\"form-text text-mute |
| LOW | weed/admin/view/app/file_browser_templ.go | 791 | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 88, "\"><!-- File List Preview --><div id=\"fileL |
| LOW | weed/admin/view/app/object_store_users_templ.go | 243 | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "</div><div class=\"mb-3\"><label for=\"email |
| LOW | weed/admin/view/app/plugin_templ.go | 107 | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "</p></div><div class=\"btn-group\"><button ty |
| LOW | weed/admin/view/app/topic_details_templ.go | 1001 | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 117, "</div></div></div></div></div></div></div>< |
| LOW | weed/admin/view/app/policies_templ.go | 196 | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</tbody></table></div></div></div></div></di |
| LOW | test/s3/fix_s3_tests_bucket_conflicts.py | 185 | def _sw_get_new_bucket_resource(name=None): |
| LOW | test/s3/parquet/s3_parquet_test.py | 259 | def read_with_parquet_dataset(path: str, fs: s3fs.S3FileSystem) -> Tuple[bool, str, int]: |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 69 | def test_implicit_directory_head_behavior(fs, s3_client): |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 159 | def test_pyarrow_dataset_read(fs): |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 179 | def test_explicit_directory_marker(fs, s3_client): |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 210 | def test_empty_file_not_directory(fs, s3_client): |
| LOW | test/s3tables/catalog/test_rest_catalog_auth.py | 41 | def test_namespace_operations(catalog, prefix): |
| LOW | test/s3tables/catalog/test_rest_catalog.py | 41 | def test_namespace_operations(catalog, prefix): |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | install.sh | 6 | # Usage: |
| LOW | weed/filer/filer.go | 508 | // Example usage: |
| LOW | weed/wdclient/vidmap_client.go | 132 | // Example usage: |
| LOW | weed/worker/tasks/base/volume_utils.go | 14 | // Example usage: |
| LOW | docker/compose/test-git-on-mount.sh | 14 | # Usage: |
| LOW | test/s3/proxy_signature/test.sh | 5 | # Usage: |
| LOW | test/s3tables/catalog/docker-compose.test.yaml | 6 | # Usage: |
| LOW | test/samba/run.sh | 17 | # Usage: |
| LOW | test/pjdfstest/run.sh | 13 | # Usage: |
| LOW | k8s/charts/seaweedfs/openshift-values.yaml | 19 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | weed/server/volume_grpc_tier_upload.go | 46 | // check whether the existing backend storage is the same as requested |
| HIGH | .github/pull_request_template.md | 17 | # Checks for AI generated PRs |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 49 | |
| LOW | test/s3/parquet/test_cross_filesystem_compatibility.py | 50 | |
| LOW | test/s3/parquet/debug_write_dataset.py | 36 | |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 13 | |
| LOW | test/s3/parquet/test_implicit_directory_fix.py | 21 | |
| LOW | test/s3/parquet/example_pyarrow_native.py | 33 | |
| LOW | test/s3tables/unity_catalog/delta_rs_writer.py | 25 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | test/s3/parquet/debug_write_dataset.py | 38 | |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 184 | |
| LOW | test/s3/parquet/test_pyarrow_native_s3.py | 271 | |
| LOW | postgres-examples/test_client.py | 103 | |
| LOW | postgres-examples/test_client.py | 145 | |
| LOW | postgres-examples/test_client.py | 242 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | test/s3/parquet/s3_parquet_test.py | 168 | Helper to discover all parquet files for a given path. Args: path: S3 path (file or directory) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | k8s/charts/seaweedfs/values.yaml | 358 | # If these don't meet your needs, you can use "custom" here along with extraVolumes and extraVolumeMounts |