JuiceFS is a distributed POSIX file system built on top of Redis and S3.
This report summarizes scanner evidence for juicedata/juicefs, a Go project with 14,595 GitHub stars. SynthScan examined 251,318 lines of code across 811 source files, recording 319 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 1.7 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 199 finding(s).
Are imports declared and package/API names verified? 81 finding(s).
Are wrappers, guards, and repeated structures necessary? 103 finding(s).
Which changes need focused human review? 319 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 319 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | cmd/format.go | 65 | # Create a simple test volume (data will be stored in a local directory) | COMMENT |
| MEDIUM⚡ | cmd/format.go | 68 | # Create a volume with Redis and S3 | COMMENT |
| MEDIUM⚡ | cmd/format.go | 71 | # Create a volume with password protected MySQL | COMMENT |
| MEDIUM⚡ | cmd/format.go | 76 | # Create a volume with "quota" enabled | COMMENT |
| MEDIUM⚡ | cmd/format.go | 79 | # Create a volume with "trash" disabled | COMMENT |
| MEDIUM | integration/s3gateway_test.sh | 605 | # Create a multipart struct file for completing multipart transaction | COMMENT |
| MEDIUM | integration/s3gateway_test.sh | 708 | # Create a multipart struct file for completing multipart transaction | COMMENT |
| MEDIUM | integration/s3gateway_test.sh | 1176 | # Create a multipart struct file for completing multipart transaction | COMMENT |
| MEDIUM | integration/s3gateway_test.sh | 1690 | # Create a multipart struct file for completing multipart transaction | COMMENT |
| MEDIUM | integration/s3gateway_test.sh | 2012 | # Create a multipart struct file for completing multipart transaction | COMMENT |
| MEDIUM | .github/scripts/apt_install.sh | 8 | # Define a function to run a command and check the return code | COMMENT |
| MEDIUM⚡ | .github/scripts/hypo/common.py | 49 | # Create a logger object | COMMENT |
| MEDIUM⚡ | .github/scripts/hypo/common.py | 54 | # Create a file handler for the logger | COMMENT |
| MEDIUM⚡ | .github/scripts/hypo/common.py | 57 | # Create a stream handler for the logger | COMMENT |
| MEDIUM⚡ | .github/scripts/hypo/common.py | 60 | # Create a formatter for the log messages | COMMENT |
| MEDIUM | .github/scripts/command/tier.sh | 1229 | # Create a deep directory tree with files at every level | COMMENT |
| MEDIUM | .github/scripts/perf/ai_format_benchmark.py | 472 | # Create a simple ONNX model | COMMENT |
| MEDIUM | .github/scripts/perf/ai_format_benchmark.py | 479 | # Create a simple graph | COMMENT |
| MEDIUM | .github/scripts/perf/ai_format_benchmark.py | 628 | # Create a simple model | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdk/python/examples/fsspec/main.py | 5 | CODE | |
| LOW | sdk/python/examples/ffrecord/dataset.py | 21 | CODE | |
| LOW | sdk/python/examples/ffrecord/dataloader.py | 16 | CODE | |
| LOW | sdk/python/examples/ffrecord/dataloader.py | 17 | CODE | |
| LOW | sdk/python/examples/ffrecord/dataloader.py | 17 | CODE | |
| LOW | sdk/python/examples/ffrecord/dataloader.py | 17 | CODE | |
| LOW | sdk/python/examples/ffrecord/dataloader.py | 18 | CODE | |
| LOW | sdk/python/examples/ffrecord/filereader.py | 23 | CODE | |
| LOW | sdk/python/examples/ffrecord/filereader.py | 26 | CODE | |
| LOW | sdk/python/examples/ffrecord/filereader.py | 27 | CODE | |
| LOW | sdk/python/examples/ffrecord/filereader.py | 29 | CODE | |
| LOW | sdk/python/juicefs/tests/test.py | 6 | CODE | |
| LOW | sdk/python/juicefs/juicefs/__init__.py | 1 | CODE | |
| LOW | sdk/python/juicefs/juicefs/juicefs.py | 29 | CODE | |
| LOW | .github/scripts/flush_meta.py | 2 | CODE | |
| LOW | .github/scripts/flush_meta.py | 3 | CODE | |
| LOW | .github/scripts/flush_meta.py | 4 | CODE | |
| LOW | .github/scripts/fsrand.py | 39 | CODE | |
| LOW | .github/scripts/testVersionCompatible.py | 6 | CODE | |
| LOW | .github/scripts/testVersionCompatible.py | 9 | CODE | |
| LOW | .github/scripts/testVersionCompatible.py | 13 | CODE | |
| LOW | .github/scripts/testVersionCompatible.py | 16 | CODE | |
| LOW | .github/scripts/testVersionCompatible.py | 29 | CODE | |
| LOW | .github/scripts/testVersionCompatible.py | 30 | CODE | |
| LOW | .github/scripts/testVersionCompatible.py | 31 | CODE | |
| LOW | .github/scripts/wins_fs_test.py | 2 | CODE | |
| LOW | .github/scripts/wins_fs_test.py | 3 | CODE | |
| LOW | .github/scripts/hypo/sync.py | 9 | CODE | |
| LOW | .github/scripts/hypo/sync.py | 10 | CODE | |
| LOW | .github/scripts/hypo/sync.py | 10 | CODE | |
| LOW | .github/scripts/hypo/sync.py | 10 | CODE | |
| LOW | .github/scripts/hypo/sync.py | 12 | CODE | |
| LOW | .github/scripts/hypo/fs_test.py | 1 | CODE | |
| LOW | .github/scripts/hypo/file_op.py | 5 | CODE | |
| LOW | .github/scripts/hypo/file_op.py | 7 | CODE | |
| LOW | .github/scripts/hypo/file_op.py | 15 | CODE | |
| LOW | .github/scripts/hypo/file_op.py | 16 | CODE | |
| LOW | .github/scripts/hypo/file_op.py | 17 | CODE | |
| LOW | .github/scripts/hypo/file_op.py | 25 | CODE | |
| LOW | .github/scripts/hypo/command.py | 4 | CODE | |
| LOW | .github/scripts/hypo/command.py | 15 | CODE | |
| LOW | .github/scripts/hypo/command.py | 28 | CODE | |
| LOW | .github/scripts/hypo/command.py | 29 | CODE | |
| LOW | .github/scripts/hypo/command.py | 29 | CODE | |
| LOW | .github/scripts/hypo/command.py | 34 | CODE | |
| LOW | .github/scripts/hypo/s3_op.py | 23 | CODE | |
| LOW | .github/scripts/hypo/file.py | 2 | CODE | |
| LOW | .github/scripts/hypo/file.py | 12 | CODE | |
| LOW | .github/scripts/hypo/file.py | 16 | CODE | |
| LOW | .github/scripts/hypo/file.py | 19 | CODE | |
| LOW | .github/scripts/hypo/fs.py | 16 | CODE | |
| LOW | .github/scripts/hypo/fs_op.py | 15 | CODE | |
| LOW | .github/scripts/hypo/s3_test.py | 3 | CODE | |
| LOW | .github/scripts/hypo/s3.py | 5 | CODE | |
| LOW | .github/scripts/hypo/s3.py | 18 | CODE | |
| LOW | .github/scripts/hypo/s3.py | 19 | CODE | |
| LOW | .github/scripts/pysdk/pysdk_test.py | 9 | CODE | |
| LOW | .github/scripts/mutate/modify_sdk_pom.py | 4 | CODE | |
| LOW | .github/scripts/mutate/save_report.py | 4 | CODE | |
| LOW | .github/scripts/mutate/save_report.py | 7 | CODE | |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdk/python/juicefs/tests/test_unbuffered_readline.py | 63 | def test_unbuffered_readline_preserves_remaining_lines(open_file, data): | CODE |
| LOW⚡ | sdk/python/juicefs/tests/test_unbuffered_readline.py | 74 | def test_iteration_preserves_all_lines(open_file, data, buffering): | CODE |
| LOW⚡ | sdk/python/juicefs/tests/test_unbuffered_readline.py | 79 | def test_unbuffered_readlines_one_leaves_the_next_line(open_file): | CODE |
| LOW⚡ | sdk/python/juicefs/tests/test_unbuffered_readline.py | 87 | def test_unbuffered_positive_hint_counts_lines(open_file, hint): | CODE |
| LOW⚡ | sdk/python/juicefs/tests/test_unbuffered_readline.py | 96 | def test_readlines_without_hint_preserves_all_lines(open_file, buffering, data): | CODE |
| LOW⚡ | sdk/python/juicefs/tests/test_unbuffered_readline.py | 104 | def test_readlines_nonpositive_or_none_hint_reads_remaining_lines(open_file, buffering, hint, offset): | CODE |
| LOW⚡ | sdk/python/juicefs/tests/test_unbuffered_readline.py | 117 | def test_readlines_nonpositive_or_none_hint_at_eof(open_file, buffering, hint): | CODE |
| LOW⚡ | sdk/python/juicefs/tests/test_unbuffered_readline.py | 123 | def test_unbuffered_readline_rejects_closed_stream(open_file): | CODE |
| LOW⚡ | sdk/python/juicefs/tests/test_unbuffered_readline.py | 130 | def test_binary_line_boundaries_match_native_file(open_file): | CODE |
| LOW⚡ | .github/scripts/check_release_distributions_test.py | 138 | def test_resolve_command_exports_the_trigger_release(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 61 | def test_resolver_calls_the_explicit_latest_release_endpoint(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 82 | def test_release_event_uses_the_trigger_release_tag(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 104 | def test_github_token_is_scoped_to_the_latest_release_request(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 171 | def test_resolve_command_exports_the_latest_release_without_trigger(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 203 | def test_invalid_latest_release_is_rejected(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 214 | def test_download_probe_uses_range_get_and_reads_only_one_byte(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 240 | def test_download_probe_rejects_an_empty_response(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 257 | def test_package_and_binary_revisions_use_the_base_version(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 269 | def test_older_or_newer_base_version_is_stale(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 279 | def test_grace_uses_target_release_publication_time(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 295 | def test_stale_and_unavailable_fail_only_after_grace(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 304 | def test_build_metadata_is_accepted(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 337 | def test_cdn_current_and_stale(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 354 | def test_cdn_requires_every_fixed_client_asset(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 366 | def test_cdn_rejects_missing_or_invalid_checksums(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 381 | def test_cdn_download_failure_is_unavailable(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 397 | def test_homebrew_current_and_stale(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 405 | def test_ppa_filters_unsupported_series(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 428 | def test_copr_current_and_partial_failure(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 448 | def test_snap_uses_stable_channel_only(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 464 | def test_aur_checks_only_stable_packages(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 481 | def test_scoop_current_and_stale(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 500 | def test_docker_requires_versioned_and_latest_tags(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 512 | def test_maven_current_and_stale(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 528 | def test_release_assets_require_versioned_artifacts(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 541 | def test_cdn_artifacts_do_not_require_latest_version_marker(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 551 | def test_target_mode_checks_only_versioned_artifacts(self): | CODE |
| LOW | .github/scripts/check_release_distributions_test.py | 585 | def test_every_channel_reports_unavailable_without_hiding_others(self): | CODE |
| LOW | .github/scripts/check_release_distributions.py | 414 | def check_cdn_artifacts_from_checksums( | CODE |
| LOW | .github/scripts/testVersionCompatible.py | 486 | def write_rand_files_and_compare(self): | CODE |
| LOW⚡ | .github/scripts/testVersionCompatible.py | 764 | def greater_than_version_formatted(self, ver): | CODE |
| LOW⚡ | .github/scripts/testVersionCompatible.py | 770 | def greater_than_version_dumped(self, ver): | CODE |
| LOW⚡ | .github/scripts/testVersionCompatible.py | 775 | def greater_than_version_mounted(self, ver): | CODE |
| LOW | .github/scripts/wins_fs_test.py | 57 | def test_directory_operations(self): | CODE |
| LOW | .github/scripts/wins_fs_test.py | 73 | def test_concurrent_operations(self): | CODE |
| LOW | .github/scripts/hypo/s3_op.py | 444 | def do_unset_policy_from_user(self, policy_name, user_name, alias): | CODE |
| LOW | .github/scripts/hypo/s3_op.py | 453 | def do_unset_policy_from_group(self, policy_name, group_name, alias): | CODE |
| LOW | .github/scripts/hypo/fs.py | 139 | def _update_paths_after_rename(self, old_path, new_path): | CODE |
| LOW | .github/scripts/hypo/fs_sdk_test.py | 292 | def test_rename_to_dir_not_exist(self): | CODE |
| LOW | .github/scripts/pysdk/pysdk_test.py | 55 | def test_readinto_writable_buffers(self): | CODE |
| LOW | .github/scripts/pysdk/pysdk_test.py | 77 | def test_readinto_invalid_buffer_preserves_position(self): | CODE |
| LOW | .github/scripts/pysdk/pysdk_test.py | 133 | def test_chown_uid_gid_arguments_must_be_index(self): | CODE |
| LOW | .github/scripts/pysdk/pysdk_test.py | 271 | def test_directory_link_nonlocal(self): | CODE |
| LOW | .github/scripts/mutate/check_skip_by_comment.py | 6 | def is_mutation_skipped_by_comment(original_file, changed_file): | CODE |
| LOW⚡ | .github/scripts/perf/ai_format_benchmark.py | 350 | def benchmark_pytorch_weights(self): | CODE |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 194 | def generate_random_image_bytes(self, width=64, height=64, format="JPEG", quality=85): | CODE |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 227 | def read_lmdb_data_single_process(self, lmdb_path): | CODE |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 258 | def read_lmdb_data_multi_process(self, lmdb_path, num_processes=2): | CODE |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 544 | def benchmark_huggingface_bin(self): | CODE |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 606 | def benchmark_tensorflow_checkpoint(self): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/lance-resolver/resolver_test.go | 561 | t.Run("file too small for a footer", func(t *testing.T) { | COMMENT |
| LOW | tools/lance-resolver/resolver.go | 461 | // fieldByName returns the schema fields keyed by name. | COMMENT |
| LOW | tools/lance-resolver/resolver_golden_test.go | 21 | // The fixture is written by the official pylance library (scripts/gen-fixtures.py, | COMMENT |
| LOW | tools/lance-resolver/scripts/check-fixture-drift.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | test/io_uring_test/common.h | 1 | #ifndef IO_URING_TEST_COMMON_H | COMMENT |
| LOW | test/preadv_test/common.h | 1 | #ifndef PREADV_TEST_COMMON_H | COMMENT |
| LOW | test/preadv_test/test_flags.c | 1 | #include "common.h" | COMMENT |
| LOW | integration/ioctl_test.sh | 1 | #!/bin/bash | COMMENT |
| LOW | integration/s3gateway_test.sh | 1 | #!/bin/bash | COMMENT |
| LOW | hack/winfsp_headers/winfsp_fuse.h | 21 | */ | COMMENT |
| LOW | hack/winfsp_headers/winfsp_fuse.h | 41 | #endif | COMMENT |
| LOW | hack/winfsp_headers/winfsp_fuse.h | 221 | 0/*conv_to_win_path*/, \ | COMMENT |
| LOW | hack/winfsp_headers/winfsp_fuse.h | 241 | #define fuse_dev_t dev_t | COMMENT |
| LOW | hack/winfsp_headers/fuse_common.h | 41 | COMMENT | |
| LOW | hack/winfsp_headers/fuse_common.h | 61 | #define FUSE_IOCTL_RETRY (1 << 2) | COMMENT |
| LOW | docs/zh_cn/reference/how_to_set_up_metadata_engine.md | 401 | # initial-restart-delay = 0 | COMMENT |
| LOW | docs/en/reference/how_to_set_up_metadata_engine.md | 421 | cluster-file = /etc/foundationdb/fdb.cluster | COMMENT |
| LOW | sdk/python/examples/ffrecord/dataset.py | 1 | # encoding: utf-8 | COMMENT |
| LOW | sdk/python/examples/ffrecord/filereader_dio.py | 1 | # encoding: utf-8 | COMMENT |
| LOW | sdk/python/examples/ffrecord/dataloader.py | 1 | # encoding: utf-8 | COMMENT |
| LOW | sdk/python/examples/ffrecord/filereader.py | 1 | # encoding: utf-8 | COMMENT |
| LOW | sdk/python/examples/ffrecord/main.py | 1 | # encoding: utf-8 | COMMENT |
| LOW | sdk/python/juicefs/tests/test_unbuffered_readline.py | 1 | # JuiceFS, Copyright 2026 Juicedata, Inc. | COMMENT |
| LOW | sdk/python/juicefs/juicefs/spec.py | 1 | # encoding: utf-8 | COMMENT |
| LOW | sdk/python/juicefs/juicefs/juicefs.py | 1 | # encoding: utf-8 | COMMENT |
| LOW | sdk/java/kerberos.sh | 1 | #!/bin/sh | COMMENT |
| LOW | sdk/java/libjfs/bridge.go | 1 | // Copyright 2016 The Prometheus Authors | COMMENT |
| LOW | sdk/java/libjfs/bridge_test.go | 1 | // Copyright 2018 The Prometheus Authors | COMMENT |
| LOW | sdk/java/libjfs/remote_write_test.go | 1 | // Copyright 2025 JuiceFS Authors | COMMENT |
| LOW | sdk/java/libjfs/remote_write.go | 1 | // Copyright 2025 JuiceFS Authors | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 61 | uses: github/codeql-action/init@v2 | COMMENT |
| LOW | .github/workflows/resources/tpcds_run.scala | 1 | // Copyright 2015 Databricks | COMMENT |
| LOW | .github/workflows/resources/tpcds_datagen.scala | 1 | // Copyright 2015 Databricks | COMMENT |
| LOW | .github/scripts/cmptree.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | .github/scripts/fsrand.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | .github/scripts/setup-hdfs.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .github/scripts/start_meta_engine.sh | 41 | case "$comm" in | COMMENT |
| LOW | .github/scripts/mutate/save_report.py | 1 | COMMENT | |
| LOW | .github/scripts/sync/sync_fsrand.sh | 181 | if [ $? -ne 0 ]; then | COMMENT |
| LOW | pkg/vfs/vfs_unix_test.go | 61 | } | COMMENT |
| LOW | pkg/vfs/vfs.go | 1401 | registerer.MustRegister(opsTotal) | COMMENT |
| LOW | pkg/chunk/disk_cache_file.go | 41 | COMMENT | |
| LOW | pkg/fuse/device_darwin.go | 1 | // Copyright 2020 Chaos Mesh Authors. | COMMENT |
| LOW | pkg/fuse/device_linux.go | 1 | // Copyright 2020 Chaos Mesh Authors. | COMMENT |
| LOW | pkg/meta/base_test.go | 4541 | m.Remove(ctx, RootInode, "batchSrc", false, RmrDefaultThreads, nil) | COMMENT |
| LOW | pkg/meta/random_test.go | 1341 | // FIXME: The comparison of the truncate results requires compacting all slices, | COMMENT |
| LOW | pkg/meta/random_test.go | 1361 | t.Fatalf("expect %s but got %s", st2, st) | COMMENT |
| LOW | pkg/meta/interface.go | 441 | // ListLocks returns all locks of a inode. | COMMENT |
| LOW | pkg/meta/interface.go | 481 | // BatchUnlink remove some file entries from the same directory | COMMENT |
| LOW | pkg/meta/interface.go | 541 | // Ino is 0 for pending slices, 1 for trash slices, or the actual inode. | COMMENT |
| LOW | pkg/utils/logger.go | 1 | // Copyright 2015 Ka-Hing Cheung | COMMENT |
| LOW | pkg/fs/http.go | 301 | } | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/check_release_distributions.py | 222 | except Exception as exc: # Keep one broken parser from hiding all other channels. | CODE |
| MEDIUM | .github/scripts/utils.py | 93 | print("Error: %s : %s" % (storage_dir, e.strerror)) | CODE |
| LOW | .github/scripts/hypo/common.py | 106 | except Exception as e: | CODE |
| MEDIUM | .github/scripts/hypo/fs_op.py | 906 | def do_change_groups(self, user, group, groups): | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 578 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 594 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 616 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 635 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 693 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 716 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 736 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 758 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 785 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 803 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 820 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 838 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 854 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 881 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 898 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 925 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 937 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 987 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 1007 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 1022 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/fs_op.py | 1056 | except Exception as e: | CODE |
| LOW | .github/scripts/hypo/command_op.py | 291 | except Exception as e: | CODE |
| MEDIUM | .github/scripts/hypo/command_op.py | 154 | def do_status(self): | CODE |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 125 | except Exception as e: | CODE |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 965 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/en/security/encryption.md | 106 | #### Step 1: Create a private key | COMMENT |
| LOW | docs/en/security/encryption.md | 126 | #### Step 2: Create an encrypted file system | COMMENT |
| LOW | docs/en/security/encryption.md | 171 | #### Step 3: Mount file system | COMMENT |
| LOW | docs/en/deployment/python_sdk.md | 23 | #### Step 1: Compile libjfs | COMMENT |
| LOW | docs/en/deployment/python_sdk.md | 31 | #### Step 2: Compile Python SDK | COMMENT |
| LOW | docs/en/deployment/python_sdk.md | 43 | #### Step 1: Build Docker image | COMMENT |
| LOW | docs/en/deployment/python_sdk.md | 53 | #### Step 2: Compile Python SDK | COMMENT |
| LOW | docs/en/deployment/samba.md | 20 | ## Step 1: Install Samba | COMMENT |
| LOW | docs/en/deployment/samba.md | 43 | ## Step 2: Enable JuiceFS extended attribute (xattr) support | COMMENT |
| LOW | docs/en/deployment/samba.md | 62 | ## Step 3: Create a Samba share | COMMENT |
| LOW | docs/en/tutorials/juicefs_on_rancher.md | 72 | ### Step 1: Set up the `Namespace` | COMMENT |
| LOW | docs/en/tutorials/juicefs_on_rancher.md | 76 | ### Step 2: Adjust configuration parameters | COMMENT |
| LOW | docs/en/tutorials/juicefs_on_colab.md | 46 | ### Step 1: Format and mount a JuiceFS file system folder | COMMENT |
| LOW | docs/en/tutorials/juicefs_on_colab.md | 77 | ### Step 2: Mount the JuiceFS file system on Colab | COMMENT |
| LOW | docs/en/tutorials/juicefs_on_colab.md | 115 | ### Step 3: Load data at another time or on another instance | COMMENT |
| LOW⚡ | docs/en/tutorials/windows.md | 27 | ### Step 1: Download JuiceFS Client | COMMENT |
| LOW⚡ | docs/en/tutorials/windows.md | 31 | ### Step 2: Create Program Directory | COMMENT |
| LOW⚡ | docs/en/tutorials/windows.md | 35 | ### Step 3: Configure Environment Variables | COMMENT |
| LOW | docs/en/tutorials/windows.md | 48 | ### Step 4: Verify Installation | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/lance-resolver/scripts/verify_warmup_ranges.py | 174 | CODE | |
| LOW | tools/lance-resolver/scripts/dump_fixture.py | 337 | CODE | |
| LOW | tools/lance-resolver/scripts/dump_fixture.py | 62 | CODE | |
| LOW | tools/lance-resolver/scripts/dump_fixture.py | 83 | CODE | |
| LOW | sdk/python/juicefs/juicefs/juicefs.py | 38 | CODE | |
| LOW | sdk/python/juicefs/juicefs/juicefs.py | 202 | CODE | |
| LOW | sdk/python/juicefs/juicefs/juicefs.py | 440 | CODE | |
| LOW | .github/scripts/cmptree.py | 66 | CODE | |
| LOW | .github/scripts/check_release_distributions.py | 113 | CODE | |
| LOW | .github/scripts/fsrand.py | 138 | CODE | |
| LOW | .github/scripts/testVersionCompatible.py | 92 | CODE | |
| LOW | .github/scripts/testVersionCompatible.py | 171 | CODE | |
| LOW | .github/scripts/utils.py | 16 | CODE | |
| LOW | .github/scripts/utils.py | 84 | CODE | |
| LOW | .github/scripts/hypo/common.py | 40 | CODE | |
| LOW | .github/scripts/hypo/common.py | 122 | CODE | |
| LOW | .github/scripts/hypo/fs.py | 139 | CODE | |
| LOW | .github/scripts/hypo/fs_op.py | 133 | CODE | |
| LOW | .github/scripts/hypo/fs_op.py | 162 | CODE | |
| LOW | .github/scripts/hypo/command_op.py | 38 | CODE | |
| LOW | .github/scripts/hypo/command_op.py | 91 | CODE | |
| LOW | .github/scripts/pysdk/pysdk_test.py | 55 | CODE | |
| LOW | .github/scripts/pysdk/pysdk_test.py | 77 | CODE | |
| LOW | .github/scripts/mutate/check_coverage.py | 22 | CODE | |
| LOW | .github/scripts/mutate/mutesting.py | 9 | CODE | |
| LOW | .github/scripts/mutate/parse_test_cases.py | 7 | CODE | |
| LOW | .github/scripts/command/crash_writer.py | 31 | CODE | |
| LOW | .github/scripts/command/crash_verify.py | 14 | CODE | |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 399 | CODE | |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 973 | CODE | |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 1031 | CODE | |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 1064 | CODE | |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 975 | CODE | |
| LOW | .github/scripts/perf/ai_format_benchmark.py | 1037 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/scripts/command/tier.sh | 1510 | # ============================================================================ | COMMENT |
| MEDIUM | .github/scripts/command/tier.sh | 1512 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | .github/scripts/perf/ai_format_benchmark.py | 346 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .github/scripts/perf/ai_format_benchmark.py | 348 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/scripts/perf/ai_format_benchmark.py | 697 | # ---------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/scripts/perf/ai_format_benchmark.py | 699 | # ---------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .github/scripts/fsrand.py | 195 | except: | CODE |
| HIGH | .github/scripts/hypo/common.py | 82 | except: | CODE |
| HIGH | .github/scripts/hypo/common.py | 106 | except Exception as e: | CODE |
| HIGH | .github/scripts/command/crash_writer.py | 81 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/lance-resolver/resolver_golden_test.go | 70 | Placeholder string `json:"placeholder"` | CODE |
| LOW | tools/lance-resolver/resolver_golden_test.go | 93 | Placeholder string `json:"placeholder"` | CODE |
| LOW | tools/lance-resolver/testdata/expected.json | 125 | "placeholder": "FILE0", | CODE |
| LOW | tools/lance-resolver/testdata/expected.json | 368 | "placeholder": "FILE1", | CODE |
| LOW | tools/lance-resolver/scripts/dump_fixture.py | 427 | f["placeholder"] = f"FILE{i}" | CODE |
| LOW | tools/lance-resolver/scripts/dump_fixture.py | 429 | full_resolve = ["MANIFEST"] + [f["placeholder"] for f in files] | CODE |
| LOW | tools/lance-resolver/scripts/dump_fixture.py | 444 | e["placeholder"] = f"EXT{i}" | CODE |
| LOW | tools/lance-resolver/scripts/dump_fixture.py | 445 | full_resolve.append(e["placeholder"]) | CODE |
| LOW | …io/juicefs/permission/RangerPermissionCheckerTest.java | 478 | String fileName = dirName + "/dummy-data"; | CODE |
| LOW | …io/juicefs/permission/RangerPermissionCheckerTest.java | 491 | String fileName = dirName + "/dummy-data"; | CODE |
| LOW⚡ | .github/scripts/check_release_distributions_test.py | 132 | checker.github_latest_release(client, "juicedata/juicefs", token="dummy-token") | CODE |
| LOW⚡ | .github/scripts/check_release_distributions_test.py | 135 | self.assertEqual("Bearer dummy-token", requests[0].get_header("Authorization")) | CODE |
| LOW⚡ | .github/scripts/perf/ai_format_benchmark.py | 362 | dummy_data = { | CODE |
| LOW⚡ | .github/scripts/perf/ai_format_benchmark.py | 369 | torch.save(dummy_data, file_path) | CODE |
| LOW⚡ | .github/scripts/perf/ai_format_benchmark.py | 371 | return {'file_size': actual_size, 'num_layers': len(dummy_data['weights'])} | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/compare_results.sh | 90 | # Check if any scenario has "worse" results | COMMENT |
| LOW | .github/scripts/cache.sh | 700 | # Check if total size exceeds max limit | COMMENT |
| LOW | .github/scripts/cache.sh | 712 | # Check if each directory is evenly distributed based on its weight | COMMENT |
| LOW | .github/scripts/start_meta_engine.sh | 132 | # Check if tiup playground process is still alive | COMMENT |
| LOW | .github/scripts/command/tier.sh | 1061 | # Set files to different tiers | COMMENT |
| LOW | .github/scripts/command/tier.sh | 1237 | # Set all to tier 1 recursively | COMMENT |
| LOW | .github/scripts/perf/compare_mdtest_fio.sh | 247 | # Check if any scenario has "worse" results | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/scripts/perf/ai_format_benchmark.py | 1125 | # Run comprehensive benchmarks | COMMENT |
| MEDIUM | .github/scripts/perf/ai_format_benchmark.py | 937 | """Run comprehensive benchmarks with multiple file sizes""" | STRING |
| MEDIUM | .github/scripts/perf/ai_format_benchmark.py | 1032 | """Save results to JSON file with comprehensive report""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdk/python/examples/ffrecord/dataloader.py | 25 | CODE | |
| LOW | sdk/python/examples/ffrecord/filereader.py | 154 | CODE | |
| LOW | sdk/python/juicefs/juicefs/juicefs.py | 104 | CODE | |
| LOW | .github/scripts/hypo/s3_op.py | 246 | CODE |