A GPU cluster manager for high-performance AI model serving (vLLM, SGLang) and on-demand SSH-accessible GPU instances.
This report summarizes scanner evidence for gpustack/gpustack, a Python project with 5,811 GitHub stars. SynthScan examined 375,961 lines of code across 1042 source files, recording 8587 pattern matches distributed across 26 syntactic categories. The legacy adjusted pattern signal is 26.3 (Elevated 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.
Can maintainers explain intent, assumptions, and trade-offs? 6844 finding(s).
Are imports declared and package/API names verified? 376 finding(s).
Are wrappers, guards, and repeated structures necessary? 7463 finding(s).
Which changes need focused human review? 8587 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 8587 distinct pattern matches across 26 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 |
|---|---|---|---|---|
| LOW⚡ | tests/test_extension.py | 51 | def test_core_values_without_a_plugin(self, monkeypatch): | CODE |
| LOW⚡ | tests/test_extension.py | 58 | def test_a_plugin_overrides_both_values(self, monkeypatch): | CODE |
| LOW⚡ | tests/test_extension.py | 64 | def test_a_plugin_that_defers_is_skipped(self, monkeypatch): | CODE |
| LOW⚡ | tests/test_extension.py | 69 | def test_a_broken_plugin_does_not_break_version_reporting(self, monkeypatch): | CODE |
| LOW⚡ | tests/test_extension.py | 74 | def test_the_entry_point_scan_happens_once(self, monkeypatch): | CODE |
| LOW | tests/test_extension.py | 92 | async def test_the_version_endpoint(self, monkeypatch): | CODE |
| LOW | tests/test_extension.py | 102 | def test_the_deployment_document_header(self, monkeypatch): | CODE |
| LOW | tests/test_extension.py | 143 | async def test_a_matching_plugin_build_passes(self, monkeypatch, temp_dir, caplog): | CODE |
| LOW | tests/test_extension.py | 153 | async def test_a_differing_server_build_warns(self, monkeypatch, temp_dir, caplog): | CODE |
| LOW⚡ | tests/test_security.py | 32 | def test_jwt_session_round_trip(): | CODE |
| LOW⚡ | tests/test_security.py | 41 | def test_jwt_rejects_expired_token(): | CODE |
| LOW⚡ | tests/test_security.py | 49 | def test_jwt_rejects_token_signed_with_another_key(): | CODE |
| LOW⚡ | tests/test_security.py | 58 | def test_jwt_rejects_unconfigured_algorithm(algorithm): | CODE |
| LOW⚡ | tests/test_security.py | 67 | def test_jwt_rejects_header_recursion_as_invalid_token(monkeypatch): | CODE |
| LOW | tests/test_security.py | 84 | def test_generated_secret_key_shape(): | CODE |
| LOW | tests/test_security.py | 103 | def test_both_verifiers_accept_the_same_plaintext(): | CODE |
| LOW | tests/test_security.py | 121 | def test_digest_is_salted_per_key(): | CODE |
| LOW | tests/test_security.py | 148 | def test_malformed_or_unknown_digest_never_verifies(digest): | CODE |
| LOW | tests/test_security.py | 165 | def test_unusable_digest_is_reported_as_such(digest): | CODE |
| LOW | tests/test_security.py | 173 | def test_a_real_digest_is_usable_whether_or_not_it_matches(): | CODE |
| LOW | tests/test_security.py | 188 | def test_a_custom_key_follows_the_deployment_switch(monkeypatch, allowed): | CODE |
| LOW | tests/test_security.py | 205 | def test_the_shape_test_does_not_apply_to_a_custom_key(monkeypatch): | CODE |
| LOW | tests/test_security.py | 222 | def test_a_generated_key_still_has_to_look_generated(monkeypatch): | CODE |
| LOW | tests/test_security.py | 238 | def test_deployment_token_never_gets_a_digest(): | CODE |
| LOW | tests/test_security.py | 269 | def test_secret_not_shaped_like_our_output_is_refused(secret_key): | CODE |
| LOW | tests/test_security.py | 275 | def test_generated_secret_is_eligible(): | CODE |
| LOW | tests/test_security.py | 301 | def test_verify_memo_is_bounded(monkeypatch): | CODE |
| LOW | tests/test_security.py | 334 | def test_gateway_digest_matches_the_shared_vector(): | CODE |
| LOW | tests/test_security.py | 338 | def test_gateway_digest_is_derived_not_recomputed(): | CODE |
| LOW | tests/test_security.py | 357 | def test_gateway_digest_is_shorter_by_the_amount_the_budget_counts_on(): | CODE |
| LOW | tests/test_security.py | 374 | def test_the_algorithm_name_changes_with_the_encoding(): | CODE |
| LOW | tests/test_security.py | 385 | def test_an_underivable_digest_yields_nothing(digest): | CODE |
| LOW | tests/routers/test_clusters.py | 25 | def test_get_server_url_strips_trailing_slash_from_cluster_override(): | CODE |
| LOW | tests/routers/test_clusters.py | 37 | def test_get_server_url_strips_trailing_slash_from_external_url(): | CODE |
| LOW | tests/routers/test_clusters.py | 49 | def test_get_server_url_falls_back_to_request_host(): | CODE |
| LOW | tests/routers/test_clusters.py | 67 | def test_cluster_update_normalizes_server_url(): | CODE |
| LOW | tests/routers/test_clusters.py | 76 | def test_get_trusted_hosts_resolution(tmp_path): | CODE |
| LOW | tests/routers/test_clusters.py | 113 | def test_config_normalizes_server_external_url(monkeypatch, tmp_path): | CODE |
| LOW | tests/routers/test_clusters.py | 148 | async def test_rename_keeps_cluster_names_unique_within_the_org(engine): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 97 | def test_a_wrong_case_load_type_is_refused(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 101 | def test_the_two_valid_axes_survive_as_their_wire_values(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 107 | def test_the_axis_name_the_runner_wants_is_derived_not_repeated(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 131 | def test_an_empty_stage_list_is_not_the_stages_shape(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 137 | def test_auto_tune_and_stages_together_are_refused(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 144 | def test_an_inverted_search_range_is_refused(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 151 | def test_an_empty_search_range_is_refused(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 156 | def test_a_valid_range_passes(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 162 | def test_non_positive_budgets_are_refused(self, field): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 167 | def test_a_point_budget_the_grid_cannot_hold_is_refused(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 179 | def test_the_ceiling_itself_is_allowed(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 184 | def test_more_manual_stages_than_the_grid_can_hold_is_refused(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 192 | def test_every_slo_threshold_must_be_positive(self, t): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 199 | def test_a_stage_without_a_numeric_rate_is_refused(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 204 | def test_a_stage_that_is_not_an_object_never_reaches_the_check(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 211 | def test_a_non_positive_stage_rate_is_refused(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 221 | def test_an_unusable_per_stage_constraint_is_refused(self, key): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 229 | def test_a_stage_constraint_left_out_is_fine(self): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 236 | def test_a_negative_pass_through_knob_is_refused(self, field): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 242 | def test_zero_stays_a_legal_setting(self, field): | CODE |
| LOW⚡ | tests/routers/test_benchmarks.py | 247 | def test_an_inverted_token_window_is_refused(self): | CODE |
| 6024 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/routers/test_usage_export_integration.py | 377 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export_integration.py | 383 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export_integration.py | 452 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export_integration.py | 454 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export.py | 144 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export.py | 146 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export.py | 243 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export.py | 245 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export.py | 449 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export.py | 451 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export.py | 550 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/routers/test_usage_export.py | 552 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cmd/test_reload_config_auth.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cmd/test_reload_config_auth.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cmd/test_reload_config_auth.py | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cmd/test_reload_config_auth.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cmd/test_reload_config_auth.py | 111 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cmd/test_reload_config_auth.py | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cmd/test_reload_config_auth.py | 207 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cmd/test_reload_config_auth.py | 209 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cloud_providers/test_shuihua.py | 95 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cloud_providers/test_shuihua.py | 97 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cloud_providers/test_shuihua.py | 176 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cloud_providers/test_shuihua.py | 178 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cloud_providers/test_shuihua.py | 218 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cloud_providers/test_shuihua.py | 220 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cloud_providers/test_shuihua.py | 308 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/cloud_providers/test_shuihua.py | 310 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/k8s/test_template_config.py | 105 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/k8s/test_template_config.py | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/k8s/test_template_config.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/k8s/test_template_config.py | 42 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_usage_details_archiver.py | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_usage_details_archiver.py | 26 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_usage_details_archiver.py | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_usage_details_archiver.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_usage_details_archiver.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_usage_details_archiver.py | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_usage_details_archiver.py | 158 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_usage_details_archiver.py | 160 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 172 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 174 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 220 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 222 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 503 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 505 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 523 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 525 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 676 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/server/test_resource_usage_collector_type_snapshot.py | 678 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/server/test_resource_usage_collector_type_snapshot.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/server/test_resource_usage_collector_type_snapshot.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_metrics_collector.py | 307 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_metrics_collector.py | 309 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_metrics_collector.py | 373 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_metrics_collector.py | 375 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_metrics_collector.py | 398 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_metrics_collector.py | 400 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_metrics_collector.py | 456 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/server/test_metrics_collector.py | 460 | # --------------------------------------------------------------------------- | COMMENT |
| 191 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/websocket_proxy/test_connection.py | 134 | except Exception as e: | CODE |
| LOW | tests/websocket_proxy/test_proxy_server.py | 326 | except Exception: | CODE |
| LOW | tests/websocket_proxy/test_proxy_server.py | 485 | except Exception as e: | CODE |
| LOW | tests/websocket_proxy/test_proxy_server.py | 674 | except Exception as e: | CODE |
| MEDIUM | tests/websocket_proxy/test_websocket_bench.py | 86 | def handle_request(reader, writer): | CODE |
| MEDIUM | tests/websocket_proxy/test_websocket_bench.py | 181 | def handle_request(reader, writer): | CODE |
| MEDIUM | tests/websocket_proxy/test_websocket_bench.py | 277 | def handle_request(reader, writer): | CODE |
| MEDIUM | tests/websocket_proxy/test_websocket_bench.py | 369 | def handle_request(reader, writer): | CODE |
| MEDIUM | tests/websocket_proxy/test_websocket_bench.py | 458 | def handle_request(reader, writer): | CODE |
| MEDIUM | tests/websocket_proxy/test_websocket_bench.py | 552 | def handle_request(reader, writer): | CODE |
| MEDIUM | tests/websocket_proxy/test_websocket_bench.py | 648 | def handle_request(reader, writer): | CODE |
| MEDIUM | tests/websocket_proxy/test_websocket_bench.py | 784 | def handle_request(reader, writer): | CODE |
| MEDIUM | tests/websocket_proxy/test_websocket_bench.py | 914 | def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 97 | except Exception: | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 192 | except Exception as e: | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 288 | except Exception: | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 377 | except Exception: | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 470 | except Exception: | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 558 | except Exception: | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 673 | except Exception as e: | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 797 | except Exception: | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 921 | except Exception: | CODE |
| LOW | tests/websocket_proxy/test_server_federation.py | 506 | except Exception as e: | CODE |
| LOW | tests/api/test_exceptions.py | 61 | except Exception as e: | CODE |
| LOW | tests/api/test_exceptions.py | 156 | except Exception as e: | CODE |
| MEDIUM | tests/api/test_exceptions.py | 55 | def test_error_response_model_validate(name, given, expected): | CODE |
| MEDIUM | tests/api/test_exceptions.py | 152 | def test_raise_if_response_error(name, given, expected): | CODE |
| MEDIUM | tests/worker/test_serve_manager.py | 1072 | def emit(writer, batch): | CODE |
| LOW | tests/worker/test_serve_manager.py | 1081 | except Exception as e: | CODE |
| LOW | tests/routes/test_model_instance_log_download.py | 118 | except Exception as e: | CODE |
| LOW | hack/perf/run_model_benchmark.py | 386 | except Exception as exc: | CODE |
| LOW | hack/perf/run_model_benchmark.py | 461 | except Exception as exc: | CODE |
| LOW | hack/perf/run_model_benchmark.py | 663 | except Exception as exc: | CODE |
| LOW | hack/perf/run_model_benchmark.py | 702 | except Exception as exc: | CODE |
| LOW | hack/perf/run_model_benchmark.py | 785 | except Exception as exc: | CODE |
| LOW | hack/perf/run_model_benchmark.py | 963 | except Exception as e: | CODE |
| LOW | hack/perf/run_model_benchmark.py | 976 | except Exception as exc: | CODE |
| LOW | hack/perf/run_model_benchmark.py | 1195 | except Exception as e: | CODE |
| LOW | hack/perf/fill_benchmark_raw_metrics.py | 191 | except Exception as exc: | CODE |
| LOW | gpustack/security.py | 68 | except Exception: | CODE |
| LOW | gpustack/extension.py | 61 | except Exception: | CODE |
| LOW | gpustack/extension.py | 86 | except Exception: | CODE |
| LOW | gpustack/cmd/db_migration.py | 81 | except Exception as e: | CODE |
| LOW | gpustack/cmd/db_migration.py | 120 | except Exception as e: | CODE |
| LOW | gpustack/cmd/db_migration.py | 142 | except Exception as e: | CODE |
| LOW | gpustack/cmd/db_migration.py | 169 | except Exception as e: | CODE |
| MEDIUM | gpustack/cmd/db_migration.py | 70 | def _run(args): | CODE |
| LOW | gpustack/cmd/download_tools.py | 80 | except Exception as e: | CODE |
| LOW | gpustack/cmd/reload_config.py | 124 | except Exception as e: | CODE |
| LOW | gpustack/cmd/reload_config.py | 286 | except Exception as e: | CODE |
| LOW | gpustack/cmd/reload_config.py | 320 | except Exception: | CODE |
| MEDIUM | gpustack/cmd/reload_config.py | 102 | def run(args): | CODE |
| LOW | gpustack/cmd/start.py | 747 | except Exception as e: | CODE |
| LOW | gpustack/cmd/start.py | 766 | except Exception as e: | CODE |
| LOW | gpustack/cmd/start.py | 802 | except Exception as e: | CODE |
| LOW | gpustack/cmd/start.py | 817 | except Exception: | CODE |
| LOW | gpustack/cmd/start.py | 847 | except Exception as e: | CODE |
| LOW | gpustack/cmd/reset_admin_password.py | 94 | except Exception as e: | CODE |
| LOW | gpustack/cmd/reset_admin_password.py | 121 | except Exception: | CODE |
| MEDIUM | gpustack/cmd/reset_admin_password.py | 47 | def run(args): | CODE |
| 618 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/scheduler/test_scheduler_subscribe.py | 18 | except (asyncio.CancelledError, Exception): | CODE |
| HIGH | tests/server/test_bus.py | 175 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_connection.py | 197 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_connection.py | 203 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_connection.py | 213 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 119 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 125 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 134 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 217 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 223 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 232 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 290 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 296 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 303 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 395 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 401 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 410 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 521 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_proxy_server.py | 717 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 134 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 140 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 150 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 230 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 236 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 246 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 323 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 329 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 339 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 413 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 419 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 429 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 506 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 512 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 522 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 597 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 603 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 613 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 717 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 723 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 733 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 853 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 859 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 869 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 964 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 970 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 980 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 97 | except Exception: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 288 | except Exception: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 377 | except Exception: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 470 | except Exception: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 558 | except Exception: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 797 | except Exception: | CODE |
| HIGH | tests/websocket_proxy/test_websocket_bench.py | 921 | except Exception: | CODE |
| HIGH | tests/websocket_proxy/test_server_federation.py | 95 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_server_federation.py | 99 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_server_federation.py | 156 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_server_federation.py | 164 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_server_federation.py | 168 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_server_federation.py | 223 | except asyncio.CancelledError: | CODE |
| HIGH | tests/websocket_proxy/test_server_federation.py | 231 | except asyncio.CancelledError: | CODE |
| 76 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/routes/test_lora_admission_under_roles.py | 0 | the api's httpexception carries its text on ``.message``, not on ``str()``, so ``pytest.raises(match=...)`` would match | STRING |
| HIGH | tests/routes/test_model_roles_validation.py | 0 | the api's httpexception carries its text on ``.message``, not on ``str()``, so ``pytest.raises(match=...)`` would match | STRING |
| HIGH | tests/routes/test_pd_backend_admission.py | 0 | the api's httpexception carries its text on ``.message``, not on ``str()``, so ``pytest.raises(match=...)`` would match | STRING |
| HIGH | tests/routes/test_role_pairing_validation.py | 0 | the api's httpexception carries its text on ``.message``, not on ``str()``, so ``pytest.raises(match=...)`` would match | STRING |
| HIGH | gpustack/schemas/gpu_instance_persistent_volumes.py | 0 | represents the public view of a gpu instance ssh public key, containing only fields that are safe to expose to clients. | STRING |
| HIGH | …ustack/schemas/gpu_instance_persistent_volume_types.py | 0 | represents the public view of a gpu instance ssh public key, containing only fields that are safe to expose to clients. | STRING |
| HIGH | gpustack/schemas/gpu_instance_templates.py | 0 | represents the public view of a gpu instance ssh public key, containing only fields that are safe to expose to clients. | STRING |
| HIGH | gpustack/schemas/gpu_instance_ssh_public_keys.py | 0 | represents the public view of a gpu instance ssh public key, containing only fields that are safe to expose to clients. | STRING |
| HIGH | gpustack/schemas/runner_source.py | 0 | validate raw community-backend yaml and return the canonical text stored in a source's ``content`` (the ``normalize`` fo | STRING |
| HIGH | gpustack/schemas/catalog_source.py | 0 | validate raw community-backend yaml and return the canonical text stored in a source's ``content`` (the ``normalize`` fo | STRING |
| HIGH | gpustack/schemas/inference_backend_source.py | 0 | validate raw community-backend yaml and return the canonical text stored in a source's ``content`` (the ``normalize`` fo | STRING |
| HIGH | gpustack/schemas/gpu_instance_types.py | 0 | created name of the gpu instance template. must be unique in the scope of the owning principal. | STRING |
| HIGH | …ustack/schemas/gpu_instance_persistent_volume_types.py | 0 | created name of the gpu instance template. must be unique in the scope of the owning principal. | STRING |
| HIGH | gpustack/schemas/gpu_instance_templates.py | 0 | created name of the gpu instance template. must be unique in the scope of the owning principal. | STRING |
| HIGH | gpustack/client/generated_benchmark_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | …tack/client/generated_cache_service_instance_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | gpustack/client/generated_user_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | gpustack/client/generated_model_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | gpustack/client/generated_model_instance_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | gpustack/client/generated_cache_service_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | gpustack/client/generated_model_file_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | gpustack/client/generated_model_route_target_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | gpustack/client/generated_worker_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | gpustack/client/generated_inference_backend_client.py | 0 | list resources. args: params: query parameters for filtering use_cache: whether to use cache. defaults to true (use cach | STRING |
| HIGH | gpustack/client/generated_benchmark_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | …tack/client/generated_cache_service_instance_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | gpustack/client/generated_user_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | gpustack/client/generated_model_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | gpustack/client/generated_model_instance_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | gpustack/client/generated_cache_service_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | gpustack/client/generated_model_file_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | gpustack/client/generated_model_route_target_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | gpustack/client/generated_worker_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | gpustack/client/generated_inference_backend_client.py | 0 | snapshot the cache atomically with the _watch_started check. returns none if the watch cache is not currently authoritat | STRING |
| HIGH | gpustack/client/generated_benchmark_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | …tack/client/generated_cache_service_instance_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | gpustack/client/generated_user_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | gpustack/client/generated_model_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | gpustack/client/generated_model_instance_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | gpustack/client/generated_cache_service_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | gpustack/client/generated_model_file_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | gpustack/client/generated_model_route_target_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | gpustack/client/generated_worker_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | gpustack/client/generated_inference_backend_client.py | 0 | update cache based on received event. runs on the awatch event loop. network i/o uses the async httpx client and happens | STRING |
| HIGH | gpustack/client/generated_benchmark_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| HIGH | …tack/client/generated_cache_service_instance_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| HIGH | gpustack/client/generated_user_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| HIGH | gpustack/client/generated_model_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| HIGH | gpustack/client/generated_model_instance_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| HIGH | gpustack/client/generated_cache_service_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| HIGH | gpustack/client/generated_model_file_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| HIGH | gpustack/client/generated_model_route_target_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| HIGH | gpustack/client/generated_worker_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| HIGH | gpustack/client/generated_inference_backend_client.py | 0 | get a resource by id. args: id: resource id use_cache: whether to use cache. defaults to true (use cache if available). | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | alembic.ini | 1 | # A generic, single database configuration. | COMMENT |
| LOW | alembic.ini | 21 | # Any required deps can installed by adding `alembic[tz]` to the pip requirements | COMMENT |
| LOW | alembic.ini | 41 | # The path separator used here should be the separator specified by "version_path_separator" below. | COMMENT |
| LOW | alembic.ini | 61 | # output_encoding = utf-8 | COMMENT |
| LOW | mkdocs.offline.yml | 41 | # katex and tablesort, the pages here reach out for katex's font files, | COMMENT |
| LOW | tests/charts/test_chart_render.py | 21 | HELM = shutil.which("helm") | COMMENT |
| LOW | tests/server/test_cache_provider_catalog.py | 421 | def test_lmcache_provider_declaration(): | COMMENT |
| LOW | tests/server/test_cache_provider_catalog.py | 1001 | assert rendered is not None | COMMENT |
| LOW | tests/server/test_pd_membership.py | 481 | # --- the SGLang gateway: one declaration across a breaking upstream rename --- | COMMENT |
| LOW | tests/server/test_gather_unmet.py | 221 | # | COMMENT |
| LOW | pack/rootfs/etc/s6-overlay/scripts/base.sh | 101 | # For optional services, allow s6 to restart instead of halting the container | COMMENT |
| LOW | …/rootfs/etc/s6-overlay/scripts/postgres-log-cleanup.sh | 1 | #!/command/with-contenv /bin/bash | COMMENT |
| LOW | pack/rootfs/var/lib/istio/cron.txt | 1 | 0 * * * * /usr/sbin/logrotate /etc/logrotate.d/higress-logrotate | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 1 | # Default values for gpustack. | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 21 | registrationTokenSecretName: "" | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 41 | # To reference your own pre-existing Secrets, replace the list entirely: | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 61 | # - `credentials.username` and `credentials.password` are set (populated | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 81 | password: null | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 101 | enabled: true | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 121 | # Ingress it generates for an LLM route, so they land on the whole | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 141 | metricsPort: 10161 | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 161 | # to pin it. | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 181 | # Affinity for the server pod. When non-empty, REPLACES the built-in default | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 221 | gateway: | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 281 | pullPolicy: IfNotPresent | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 301 | # metax - MetaX GPU; mounts /opt/mxdriver and /opt/maca | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 321 | # based on the vendor's PCI ID. These labels are advertised by Node Feature | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 341 | # to fall back to `global.nodeSelector`. Each DaemonSet additionally | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 361 | # whenever `worker.enabled` is true (the sub-chart's `condition` in Chart.yaml). | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 381 | # Turning an individual component off (e.g. a cluster that already runs Kueue): | COMMENT |
| LOW | hack/install.sh | 101 | # Vendor the dependencies only when the vendored copies do not already satisfy | COMMENT |
| LOW | hack/build-docs.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | hack/lib/log.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | hack/lib/version.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | docs/cli-reference/start.md | 221 | # -- which for several of them is not the name of the WasmPlugin resource they | COMMENT |
| LOW | docs/cli-reference/start.md | 241 | # only the case of one too busy to answer yet -- where waiting is what | COMMENT |
| LOW | .github/workflows/code-review.yml | 1 | # This workflow runs AI code review on pull requests by calling the reusable workflow in | COMMENT |
| LOW | gpustack/security.py | 21 | GENERATED_SECRET_KEY_BYTES = 16 | COMMENT |
| LOW | gpustack/__init__.py | 1 | __version__ = '0.0.0' | COMMENT |
| LOW | gpustack/topology/tree.py | 41 | # The two layer ids the operator cannot use for a layer of their own. The | COMMENT |
| LOW | gpustack/topology/vocabulary.py | 81 | # by "rack". | COMMENT |
| LOW | gpustack/config/config.py | 121 | # unset, the derivation falls back to the management NIC on a host with a | COMMENT |
| LOW | gpustack/config/config.py | 261 | allow_headers: Optional[List[str]] = ['Authorization', 'Content-Type', 'X-API-Key'] | COMMENT |
| LOW | gpustack/config/config.py | 321 | # for deployments fronted by a proxy that rewrites paths. | COMMENT |
| LOW | gpustack/config/config.py | 461 | self.make_dirs() | COMMENT |
| LOW | gpustack/k8s/values.py | 241 | # The cluster's node selector goes here and nowhere else. Helm shares | COMMENT |
| LOW | gpustack/k8s/pod_security.py | 21 | # at `privileged`. | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 1 | #!/bin/bash | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 81 | trap 'rm -f "${rendered}" "${live}" "${chart}" "${values}" "${scan_errors}"' EXIT | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 181 | # | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 201 | # pruned by `helm upgrade` only if a previous revision rendered it. The | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 221 | # below, and this would delete a worker the chart means to run. | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 301 | if [[ -n "${current_stamp}" && "${current_stamp}" != "${RENDERED_AT}" ]]; then | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 321 | # deleted out of band leaves the status `deployed` and the revision matching, so | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 341 | log "release is already at revision ${DESIRED_REVISION}, nothing to install" | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 361 | # templates record the new revision, and every later Job skip. | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 401 | COMMENT | |
| LOW | gpustack/k8s/bootstrap.sh | 421 | # "The kind is not registered yet" is not among the cases refused here, because | COMMENT |
| LOW | gpustack/k8s/bootstrap.sh | 521 | COMMENT | |
| LOW | gpustack/k8s/bootstrap.sh | 541 | --ignore-not-found \ | COMMENT |
| 236 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hack/perf/run_model_benchmark.py | 401 | def _update_existing_model(self, config: Model, payload: Dict[str, Any]) -> None: | CODE |
| LOW | gpustack/extension.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/ssl_context.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/cmd/version.py | 6 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/cmd/db_migration.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/cmd/download_tools.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/cmd/__init__.py | 4 | __all__ = ["setup_start_cmd", "setup_reload_config_cmd"] | CODE |
| LOW | gpustack/cmd/reload_config.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/cmd/start.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/cmd/reset_admin_password.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/cmd/prerun.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/topology/tree.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/cloud_providers/shuihua.py | 52 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/cloud_providers/digital_ocean.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/mixins/active_record.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/config/config.py | 69 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/config/__init__.py | 4 | __all__ = ["Config"] | CODE |
| LOW | gpustack/scheduler/queue.py | 4 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/scheduler/group_schedule.py | 59 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/scheduler/group_solver.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/scheduler/calculator.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/scheduler/offer_slot.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/scheduler/scheduler.py | 108 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/scheduler/port_budget.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/scheduler/evaluator.py | 92 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/scheduler/group_capacity.py | 57 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/catalog.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/worker_request.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/worker_instance_cleaner.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/cache_provider_catalog.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/pd_mode_resolver.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/services.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/prometheus_query.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/server.py | 150 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/scaling_scheduler.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/update_check.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/lora_model_routes.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/cache_service_metrics.py | 46 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/controllers.py | 236 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/resource_event_logger.py | 53 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/gateway_auth_reconciler.py | 76 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/storage_usage_collector.py | 52 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/storage_usage_collector.py | 299 | async def _settle_locked(self, vol: _OpenVolume, end_ts: datetime) -> None: | CODE |
| LOW | gpustack/server/cache.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/cache.py | 29 | def set_coordinator(coordinator: Optional["Coordinator"]) -> None: | CODE |
| LOW | gpustack/server/system_load.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/pd_mode_catalog.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/metrics_collector.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/bus.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/bus.py | 40 | __all__ = [ | CODE |
| LOW | gpustack/server/usage_details_archiver.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/worker_allocated_cache.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/resource_usage_collector.py | 92 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | gpustack/server/resource_usage_collector.py | 977 | async def _settle_locked(self, window: _OpenWindow, end_ts: datetime) -> None: | CODE |
| LOW | gpustack/server/app.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/cache_services.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/worker_syncer.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/worker_status_buffer.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/usage_archiver.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | gpustack/server/lora_adapters_discovery.py | 19 | logger = logging.getLogger(__name__) | CODE |
| 182 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …sts/server/test_model_service_delete_created_routes.py | 16 | CODE | |
| LOW | hack/perf/perf_doc_common.py | 1 | CODE | |
| LOW | hack/perf/plot_latency_comparison.py | 18 | CODE | |
| LOW | hack/perf/extract_json_key_table.py | 32 | CODE | |
| LOW | hack/perf/generate_latency_optimization_doc.py | 19 | CODE | |
| LOW | hack/perf/fill_benchmark_raw_metrics.py | 18 | CODE | |
| LOW | hack/perf/generate_throughput_optimization_doc.py | 19 | CODE | |
| LOW | gpustack/extension.py | 24 | CODE | |
| LOW | gpustack/ssl_context.py | 22 | CODE | |
| LOW | gpustack/cmd/__init__.py | 1 | CODE | |
| LOW | gpustack/cmd/__init__.py | 2 | CODE | |
| LOW | gpustack/topology/tree.py | 33 | CODE | |
| LOW | gpustack/topology/view.py | 14 | CODE | |
| LOW | gpustack/topology/vocabulary.py | 29 | CODE | |
| LOW | gpustack/config/__init__.py | 1 | CODE | |
| LOW | gpustack/scheduler/group_schedule.py | 25 | CODE | |
| LOW | gpustack/scheduler/group_solver.py | 20 | CODE | |
| LOW | gpustack/scheduler/offer_slot.py | 24 | CODE | |
| LOW | gpustack/scheduler/port_budget.py | 27 | CODE | |
| LOW | gpustack/scheduler/group_capacity.py | 25 | CODE | |
| LOW | gpustack/server/cache_service_metrics.py | 24 | CODE | |
| LOW | gpustack/server/cache_service_metrics.py | 24 | CODE | |
| LOW | gpustack/server/cache_service_metrics.py | 24 | CODE | |
| LOW | gpustack/server/cache.py | 13 | CODE | |
| LOW | gpustack/server/bus.py | 9 | CODE | |
| LOW | gpustack/server/bus.py | 9 | CODE | |
| LOW | gpustack/server/coordinator/__init__.py | 20 | CODE | |
| LOW | gpustack/server/coordinator/__init__.py | 20 | CODE | |
| LOW | gpustack/server/coordinator/__init__.py | 20 | CODE | |
| LOW | gpustack/server/coordinator/__init__.py | 21 | CODE | |
| LOW | gpustack/utils/compat_importlib.py | 4 | CODE | |
| LOW | gpustack/utils/compat_importlib.py | 6 | CODE | |
| LOW | gpustack/utils/ephemeral_ports.py | 18 | CODE | |
| LOW | gpustack/utils/resource_usage.py | 7 | CODE | |
| LOW | gpustack/utils/attrs.py | 1 | CODE | |
| LOW | gpustack/policies/scorers/group_placement_scorer.py | 42 | CODE | |
| LOW | gpustack/policies/candidate_selectors/__init__.py | 1 | CODE | |
| LOW | gpustack/policies/candidate_selectors/__init__.py | 2 | CODE | |
| LOW | gpustack/policies/candidate_selectors/__init__.py | 3 | CODE | |
| LOW | gpustack/policies/candidate_selectors/__init__.py | 4 | CODE | |
| LOW | gpustack/policies/candidate_selectors/__init__.py | 5 | CODE | |
| LOW | …ndidate_selectors/instance_type_whole_card_selector.py | 29 | CODE | |
| LOW | gpustack/schemas/models.py | 49 | CODE | |
| LOW | gpustack/schemas/models.py | 63 | CODE | |
| LOW | gpustack/schemas/models.py | 64 | CODE | |
| LOW | gpustack/schemas/clusters.py | 41 | CODE | |
| LOW | gpustack/schemas/clusters.py | 41 | CODE | |
| LOW | gpustack/schemas/clusters.py | 42 | CODE | |
| LOW | gpustack/schemas/clusters.py | 43 | CODE | |
| LOW | gpustack/schemas/principals.py | 54 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| LOW | gpustack/schemas/__init__.py | 1 | CODE | |
| 265 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/scheduler/test_scheduler_subscribe.py | 99 | CODE | |
| LOW | tests/server/test_cache_provider_catalog.py | 1414 | CODE | |
| LOW | tests/server/test_cache_provider_catalog.py | 1430 | CODE | |
| LOW | tests/server/test_scaling_scheduler.py | 319 | CODE | |
| LOW | …date_selectors/gguf/test_gguf_resource_fit_selector.py | 1484 | CODE | |
| LOW | …end_mindie/test_ascend_mindie_resource_fit_selector.py | 401 | CODE | |
| LOW | …end_mindie/test_ascend_mindie_resource_fit_selector.py | 1697 | CODE | |
| LOW | …end_mindie/test_ascend_mindie_resource_fit_selector.py | 1895 | CODE | |
| LOW | …end_mindie/test_ascend_mindie_resource_fit_selector.py | 402 | CODE | |
| LOW | …end_mindie/test_ascend_mindie_resource_fit_selector.py | 1700 | CODE | |
| LOW | …end_mindie/test_ascend_mindie_resource_fit_selector.py | 1898 | CODE | |
| LOW | tests/websocket_proxy/test_proxy_server.py | 418 | CODE | |
| LOW | tests/websocket_proxy/test_proxy_server.py | 529 | CODE | |
| LOW | tests/websocket_proxy/test_proxy_server.py | 443 | CODE | |
| LOW | tests/websocket_proxy/test_proxy_server.py | 554 | CODE | |
| LOW | tests/worker/test_metrics_unit_scaling.py | 131 | CODE | |
| LOW | tests/routes/test_model_files_authorization.py | 161 | CODE | |
| LOW | tests/routes/test_model_pause.py | 210 | CODE | |
| LOW | hack/perf/perf_doc_common.py | 363 | CODE | |
| LOW | hack/perf/extract_json_key_table.py | 128 | CODE | |
| LOW | hack/perf/run_model_benchmark.py | 275 | CODE | |
| LOW | hack/perf/run_model_benchmark.py | 411 | CODE | |
| LOW | hack/perf/run_model_benchmark.py | 917 | CODE | |
| LOW | gpustack/cmd/db_migration.py | 270 | CODE | |
| LOW | gpustack/cmd/reload_config.py | 325 | CODE | |
| LOW | gpustack/cmd/reset_admin_password.py | 47 | CODE | |
| LOW | gpustack/topology/vocabulary.py | 364 | CODE | |
| LOW | gpustack/mixins/active_record.py | 47 | CODE | |
| LOW | gpustack/mixins/active_record.py | 516 | CODE | |
| LOW | gpustack/mixins/active_record.py | 736 | CODE | |
| LOW | gpustack/mixins/active_record.py | 832 | CODE | |
| LOW | gpustack/config/config.py | 389 | CODE | |
| LOW | gpustack/config/config.py | 730 | CODE | |
| LOW | gpustack/scheduler/group_solver.py | 241 | CODE | |
| LOW | gpustack/scheduler/calculator.py | 1094 | CODE | |
| LOW | gpustack/scheduler/calculator.py | 1309 | CODE | |
| LOW | gpustack/scheduler/calculator.py | 1345 | CODE | |
| LOW | gpustack/scheduler/calculator.py | 266 | CODE | |
| LOW | gpustack/scheduler/calculator.py | 525 | CODE | |
| LOW | gpustack/scheduler/scheduler.py | 209 | CODE | |
| LOW | gpustack/scheduler/evaluator.py | 348 | CODE | |
| LOW | gpustack/scheduler/evaluator.py | 1145 | CODE | |
| LOW | gpustack/scheduler/meta_registry.py | 122 | CODE | |
| LOW | gpustack/server/services.py | 329 | CODE | |
| LOW | gpustack/server/services.py | 780 | CODE | |
| LOW | gpustack/server/server.py | 701 | CODE | |
| LOW | gpustack/server/server.py | 921 | CODE | |
| LOW | gpustack/server/server.py | 1489 | CODE | |
| LOW | gpustack/server/cache_service_metrics.py | 153 | CODE | |
| LOW | gpustack/server/cache_service_metrics.py | 234 | CODE | |
| LOW | gpustack/server/controllers.py | 1587 | CODE | |
| LOW | gpustack/server/controllers.py | 1776 | CODE | |
| LOW | gpustack/server/controllers.py | 2574 | CODE | |
| LOW | gpustack/server/controllers.py | 757 | CODE | |
| LOW | gpustack/server/controllers.py | 832 | CODE | |
| LOW | gpustack/server/controllers.py | 937 | CODE | |
| LOW | gpustack/server/controllers.py | 992 | CODE | |
| LOW | gpustack/server/controllers.py | 1207 | CODE | |
| LOW | gpustack/server/controllers.py | 1315 | CODE | |
| LOW | gpustack/server/controllers.py | 4959 | CODE | |
| 190 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | README.md | 185 | # Replace `your_api_key` and `your_gpustack_server_url` | COMMENT |
| HIGH | README.md | 187 | export GPUSTACK_API_KEY=your_api_key | CODE |
| HIGH | README_CN.md | 176 | # 将 `your_api_key` 和 `your_gpustack_server_url` | COMMENT |
| HIGH | README_CN.md | 178 | export GPUSTACK_API_KEY=your_api_key | CODE |
| HIGH | README_JP.md | 178 | # `your_api_key` と `your_gpustack_server_url` を | COMMENT |
| HIGH | README_JP.md | 180 | export GPUSTACK_API_KEY=your_api_key | CODE |
| HIGH | docs/troubleshooting.md | 37 | -H "Authorization: Bearer <YOUR_API_KEY>" \ | CODE |
| HIGH | docs/troubleshooting.md | 37 | -H "Authorization: Bearer <YOUR_API_KEY>" \ | CODE |
| HIGH | docs/quickstart.md | 114 | # Replace `your_api_key` and `your_gpustack_server_url` | COMMENT |
| HIGH | docs/quickstart.md | 116 | export GPUSTACK_API_KEY=your_api_key | CODE |
| HIGH | docs/migration.md | 115 | --database-url ${your-database-url} | CODE |
| HIGH | docs/user-guide/api-key-management.md | 147 | export GPUSTACK_API_KEY=your_api_key | CODE |
| HIGH⚡ | docs/using-models/using-reranker-models.md | 43 | export GPUSTACK_API_KEY=<your-api-key> | CODE |
| HIGH | docs/using-models/using-reranker-models.md | 59 | Replace `<your-server-url>` with the URL of your GPUStack server and `<your-api-key>` with the API key you generated in | CODE |
| HIGH⚡ | docs/using-models/using-embedding-models.md | 43 | export GPUSTACK_API_KEY=<your-api-key> | CODE |
| HIGH | docs/using-models/using-embedding-models.md | 54 | Replace `<your-server-url>` with the URL of your GPUStack server and `<your-api-key>` with the API key you generated in | CODE |
| HIGH | docs/integrations/inference-apis.md | 28 | export GPUSTACK_API_KEY=your_api_key | CODE |
| HIGH | docs/integrations/inference-apis.md | 55 | export GPUSTACK_API_KEY=your_api_key | CODE |
| HIGH | docs/integrations/inference-apis.md | 82 | export GPUSTACK_API_KEY=your_api_key | CODE |
| HIGH | docs/integrations/inference-apis.md | 143 | export GPUSTACK_API_KEY=your_api_key | CODE |
| HIGH | docs/tutorials/serving-with-lora-adapters.md | 78 | -H "Authorization: Bearer <your-api-key>" \ | CODE |
| HIGH⚡ | docs/tutorials/serving-with-lora-adapters.md | 90 | -H "Authorization: Bearer <your-api-key>" \ | CODE |
| HIGH⚡ | docs/tutorials/serving-with-lora-adapters.md | 98 | Replace `<your-gpustack-server>` with your server address and `<your-api-key>` with an API key created on the `API Keys` | CODE |
| HIGH⚡ | docs/tutorials/inference-with-tool-calling.md | 66 | With the model deployed and an API key, you can call the model via the GPUStack API. Here is an example script using `cu | CODE |
| HIGH⚡ | docs/tutorials/inference-with-tool-calling.md | 70 | export GPUSTACK_API_KEY=<your-api-key> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 378 | # Step 1: Server1 connects to Server2 as peer | COMMENT |
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 382 | # Step 2: Connect a client to Server2 (not Server1) | COMMENT |
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 395 | # Step 3: Server2 syncs its client to Server1 via peer connection | COMMENT |
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 400 | # Step 4: Server1 disconnects from Server2 | COMMENT |
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 404 | # Step 5: Server1 should clean up clients synced from Server2 | COMMENT |
| LOW | docs/user-guide/cache-service-management.md | 38 | ### Step 1: Find the block size the engine chose | COMMENT |
| LOW | docs/user-guide/cache-service-management.md | 55 | ### Step 2: Configure the cache service | COMMENT |
| LOW | docs/user-guide/cache-service-management.md | 64 | ### Step 3: Deploy the model against the service | COMMENT |
| LOW⚡ | docs/using-models/using-vision-language-models.md | 26 | ## Step 1: Install GPUStack | COMMENT |
| LOW⚡ | docs/using-models/using-vision-language-models.md | 30 | ## Step 2: Log in to GPUStack UI | COMMENT |
| LOW⚡ | docs/using-models/using-vision-language-models.md | 40 | ## Step 3: Deploy Vision Language Models with vLLM | COMMENT |
| LOW | docs/using-models/using-vision-language-models.md | 88 | ## Step 4: Interact with Vision Language Models | COMMENT |
| LOW | docs/using-models/using-image-generation-models.md | 13 | ## Step 1: Deploy the Z-Image-Turbo Model | COMMENT |
| LOW | docs/using-models/using-image-generation-models.md | 28 | ## Step 2: Use the Model for Image Generation | COMMENT |
| LOW | docs/using-models/using-reranker-models.md | 14 | ## Step 1: Deploy the Model | COMMENT |
| LOW⚡ | docs/using-models/using-reranker-models.md | 28 | ## Step 2: Generate an API Key | COMMENT |
| LOW⚡ | docs/using-models/using-reranker-models.md | 37 | ## Step 3: Reranking | COMMENT |
| LOW | docs/using-models/using-large-language-models.md | 15 | ## Step 1: Deploy Large Language Models | COMMENT |
| LOW | docs/using-models/using-large-language-models.md | 41 | ## Step 2: Use the LLMs for Text Generation | COMMENT |
| LOW | docs/using-models/using-audio-models.md | 16 | ### Step 1: Deploy Speech-to-Text Model | COMMENT |
| LOW | docs/using-models/using-audio-models.md | 30 | ### Step 2: Interact with Speech-to-Text Model | COMMENT |
| LOW | docs/using-models/using-audio-models.md | 39 | ### Step 3: Streaming Output via API | COMMENT |
| LOW | docs/using-models/using-audio-models.md | 62 | ### Step 1: Deploy Text-to-Speech Model | COMMENT |
| LOW | docs/using-models/using-audio-models.md | 76 | ### Step 2: Interact with Text-to-Speech Model | COMMENT |
| LOW | docs/using-models/using-audio-models.md | 87 | ### Step 3: Streaming Output via API | COMMENT |
| LOW | docs/using-models/using-audio-models.md | 117 | ### Step 1: Deploy Voice Cloning Model | COMMENT |
| LOW | docs/using-models/using-audio-models.md | 123 | ### Step 2: Use Voice Cloning in Playground | COMMENT |
| LOW | docs/using-models/using-embedding-models.md | 14 | ## Step 1: Deploy the Model | COMMENT |
| LOW⚡ | docs/using-models/using-embedding-models.md | 28 | ## Step 2: Generate an API Key | COMMENT |
| LOW⚡ | docs/using-models/using-embedding-models.md | 37 | ## Step 3: Generate Text Embeddings | COMMENT |
| LOW | docs/tutorials/serving-with-lora-adapters.md | 37 | ## Step 1: Deploy the Base Model with LoRA Adapters | COMMENT |
| LOW | docs/tutorials/serving-with-lora-adapters.md | 64 | ## Step 2: Invoke a LoRA Adapter | COMMENT |
| LOW⚡ | docs/tutorials/serving-with-lora-adapters.md | 100 | ## Step 3: Manage LoRA Adapters | COMMENT |
| LOW | …ing-deepseek-r1-671b-with-distributed-ascend-mindie.md | 31 | ## Step 1: Install GPUStack Server | COMMENT |
| LOW | …ing-deepseek-r1-671b-with-distributed-ascend-mindie.md | 56 | ## Step 2: Access GPUStack UI | COMMENT |
| LOW | …ing-deepseek-r1-671b-with-distributed-ascend-mindie.md | 64 | ## Step 3: Install GPUStack Workers | COMMENT |
| LOW | …ing-deepseek-r1-671b-with-distributed-ascend-mindie.md | 98 | ## Step 4: Deploy the DeepSeek R1 Model | COMMENT |
| LOW | …ing-deepseek-r1-671b-with-distributed-ascend-mindie.md | 117 | ## Step 5: Monitor Deployment | COMMENT |
| LOW | …ing-deepseek-r1-671b-with-distributed-ascend-mindie.md | 127 | ## Step 6: Run Inference via Playground | COMMENT |
| LOW | …ials/running-deepseek-r1-671b-with-distributed-vllm.md | 30 | ## Step 1: Install GPUStack Server | COMMENT |
| LOW | …ials/running-deepseek-r1-671b-with-distributed-vllm.md | 56 | ## Step 2: Access GPUStack UI | COMMENT |
| LOW | …ials/running-deepseek-r1-671b-with-distributed-vllm.md | 64 | ## Step 3: Install GPUStack Workers | COMMENT |
| LOW | …ials/running-deepseek-r1-671b-with-distributed-vllm.md | 96 | ## Step 4: Deploy the DeepSeek R1 Model | COMMENT |
| LOW | …ials/running-deepseek-r1-671b-with-distributed-vllm.md | 108 | ## Step 5: Monitor Deployment | COMMENT |
| LOW | …ials/running-deepseek-r1-671b-with-distributed-vllm.md | 118 | ## Step 6: Run Inference via Playground | COMMENT |
| LOW | …rials/running-distributed-vllm-with-multiprocessing.md | 27 | ## Step 1: Add GPUStack Workers | COMMENT |
| LOW | …rials/running-distributed-vllm-with-multiprocessing.md | 35 | ## Step 2: Deploy the Model with the MP Backend | COMMENT |
| LOW | …rials/running-distributed-vllm-with-multiprocessing.md | 72 | ## Step 3: Monitor Deployment | COMMENT |
| LOW | …rials/running-distributed-vllm-with-multiprocessing.md | 83 | ## Step 4: Verify via the Playground | COMMENT |
| LOW | docs/tutorials/routing-with-lb-policies.md | 11 | ## Step 1: Create the Route | COMMENT |
| LOW | docs/tutorials/routing-with-lb-policies.md | 20 | ## Step 2: Understand How Session Affinity and Least Inflight Request Interact | COMMENT |
| LOW | docs/tutorials/routing-with-lb-policies.md | 45 | ## Step 3: Enable Session Affinity and Least Inflight Request | COMMENT |
| LOW | docs/tutorials/routing-with-lb-policies.md | 56 | ## Step 4: Add Decision Service Routing | COMMENT |
| LOW | docs/tutorials/inference-with-tool-calling.md | 20 | ## Step 1: Deploy the Model | COMMENT |
| LOW⚡ | docs/tutorials/inference-with-tool-calling.md | 55 | ## Step 2: Generate an API Key | COMMENT |
| LOW⚡ | docs/tutorials/inference-with-tool-calling.md | 64 | ## Step 3: Do Inference | COMMENT |
| LOW⚡ | gpustack/scheduler/calculator.py | 918 | # Step 1: Apply filters to reduce broadcast scope | COMMENT |
| LOW | gpustack/scheduler/calculator.py | 945 | # Step 2: Broadcast to filtered workers | COMMENT |
| LOW | gpustack/scheduler/calculator.py | 1035 | # Step 1: Apply worker filters before broadcasting | COMMENT |
| LOW | gpustack/scheduler/calculator.py | 1070 | # Step 2: Broadcasting to filtered workers | COMMENT |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/routers/test_usage_export_integration.py | 952 | # Untracked carries no identity at all (the field is omitted, not null), | COMMENT |
| HIGH⚡ | tests/charts/test_chart_render.py | 273 | # Helm drops a key set to null, and plain truthiness would read that | COMMENT |
| HIGH | tests/routes/test_gpu_service_search_alignment.py | 3 | All of them render ``displayName || name`` in the Name column and all of them | STRING |
| HIGH⚡ | tests/routes/plugins/test_registry.py | 202 | # {"p2": null} mentions another registered plugin only — p1 is untouched | COMMENT |
| HIGH | gpustack/cloud_providers/user_data.py | 51 | ExecStart=/bin/bash -c "/opt/gpustack-run-worker.sh && systemctl disable post-reboot.service" | CODE |
| HIGH | gpustack/utils/ephemeral_ports.py | 187 | "sudo tee -a /etc/sysctl.conf && sudo sysctl -p", | CODE |
| HIGH | gpustack/schemas/organizations.py | 156 | label. The UI is expected to render ``display_name || name``; | STRING |
| HIGH⚡ | gpustack/worker/model_meta.py | 76 | "docker_label": null, | STRING |
| HIGH⚡ | gpustack/worker/model_meta.py | 80 | "max_stop_sequences": null, | STRING |
| HIGH⚡ | gpustack/worker/model_meta.py | 81 | "max_waiting_tokens": null, | STRING |
| HIGH⚡ | gpustack/worker/model_meta.py | 82 | "sha": null, | STRING |
| HIGH⚡ | gpustack/worker/model_meta.py | 83 | "validation_workers": null, | STRING |
| HIGH⚡ | gpustack/worker/model_meta.py | 85 | "waiting_served_ratio": null, | STRING |
| HIGH⚡ | gpustack/worker/model_meta.py | 92 | "model_sha": null, | STRING |
| HIGH | gpustack/worker/backends/base.py | 1363 | rm -rf /usr/local/cuda/compat 2>/dev/null || true | CODE |
| HIGH | gpustack/worker/backends/base.py | 1364 | ldconfig 2>/dev/null || true | CODE |
| HIGH | gpustack/routes/users.py | 281 | # ``{"source": null}`` explicitly would otherwise write NULL | COMMENT |
| HIGH | gpustack/routes/gpu_instances_helper.py | 74 | ``display_name || name`` as the UI writes it, where ``nullif(..., '')`` is | STRING |
| HIGH | gpustack/routes/plugins/registry.py | 157 | f"plugins.{plugin.name} must be an object or null, got {type(value).__name__}" | CODE |
| HIGH | gpustack/routes/plugins/base.py | 189 | section to an explicit null) = delete the plugin's stored | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/websocket_proxy/test_proxy_server.py | 453 | # Check if we have complete request (headers + body) | COMMENT |
| LOW | tests/websocket_proxy/test_proxy_server.py | 465 | # Check if we have complete body | COMMENT |
| LOW | charts/gpustack-chart/values.yaml | 70 | # Set false to reference the canonical Secret without creating it, for a | COMMENT |
| LOW | gpustack/scheduler/evaluator.py | 1152 | # Check if local path exists on server | COMMENT |
| LOW | gpustack/server/bus.py | 381 | # Check if this is a cross-instance event (only has ID) | COMMENT |
| LOW | gpustack/policies/utils.py | 97 | # Check if this GPU can be added to the current group | COMMENT |
| LOW | gpustack/policies/utils.py | 103 | # Check if min_allocatable_memory >= current_gpu_allocatable_memory * 0.9 | COMMENT |
| LOW | gpustack/policies/utils.py | 495 | # Check if this is a main worker instance | COMMENT |
| LOW | gpustack/policies/utils.py | 498 | # Check if this worker is used as a subordinate worker | COMMENT |
| LOW | gpustack/policies/utils.py | 752 | # Check if this GPU can be added to the current group | COMMENT |
| LOW | gpustack/policies/utils.py | 758 | # Check if min_allocatable_vram >= current_allocatable_vram * 0.9 | COMMENT |
| LOW | …date_selectors/custom_backend_resource_fit_selector.py | 362 | # Check if GPU has enough VRAM | COMMENT |
| LOW | …date_selectors/custom_backend_resource_fit_selector.py | 453 | # Check if total VRAM is sufficient | COMMENT |
| LOW | …date_selectors/custom_backend_resource_fit_selector.py | 503 | # Check if worker has enough RAM for CPU inference | COMMENT |
| LOW | …olicies/candidate_selectors/base_candidate_selector.py | 864 | # Check if the GPU is satisfied the requirement | COMMENT |
| LOW | …olicies/candidate_selectors/base_candidate_selector.py | 969 | # Assign GPUs to the subordinate worker | COMMENT |
| LOW | …cies/candidate_selectors/gguf_resource_fit_selector.py | 1978 | # Check if the rpc gpus can offload even one layer. | COMMENT |
| LOW | …ck/policies/worker_filters/backend_framework_filter.py | 123 | # Check if gpu_type is supported by custom_framework | COMMENT |
| LOW | …ck/policies/worker_filters/backend_framework_filter.py | 129 | # Check if gpu_type is supported by built_in_frameworks | COMMENT |
| LOW | …ck/policies/worker_filters/backend_framework_filter.py | 189 | # Check if model has specified backend_version | COMMENT |
| LOW | …ck/policies/worker_filters/backend_framework_filter.py | 196 | # Check if any GPU condition is compatible | COMMENT |
| LOW | gpustack/schemas/common.py | 58 | # Verify if the field is in the allowed sortable fields | COMMENT |
| LOW | gpustack/websocket_proxy/message_server.py | 179 | # Check if this is a local client (registered on this server) | COMMENT |
| LOW | gpustack/websocket_proxy/message_server.py | 316 | # Check if this is a Starlette WebSocket or websockets WebSocket | COMMENT |
| LOW | gpustack/websocket_proxy/message_server.py | 645 | # Check if this is a server federation connection | COMMENT |
| LOW | gpustack/websocket_proxy/message.py | 279 | # Check if msg_type is a valid BinaryType value | COMMENT |
| LOW | gpustack/websocket_proxy/connection_manager.py | 302 | # Check if proxy accepted the connection | COMMENT |
| LOW | gpustack/api/middlewares.py | 420 | # Check if the token is about to expire (less than 15 minutes left) | COMMENT |
| LOW | gpustack/worker/model_file_manager.py | 816 | # Check if we should log based on time (2 seconds) or progress change (1%) | COMMENT |
| LOW | gpustack/worker/backends/sglang.py | 594 | # Check if this is a multi-node deployment | COMMENT |
| LOW | gpustack/worker/backends/sglang.py | 770 | # Check if tensor parallelism is already specified | COMMENT |
| LOW | gpustack/client/generated_benchmark_client.py | 249 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | …tack/client/generated_cache_service_instance_client.py | 254 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | gpustack/client/generated_user_client.py | 247 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | gpustack/client/generated_model_client.py | 247 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | gpustack/client/generated_model_instance_client.py | 250 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | gpustack/client/generated_cache_service_client.py | 250 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | gpustack/client/generated_model_file_client.py | 249 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | gpustack/client/generated_model_route_target_client.py | 252 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | gpustack/client/generated_worker_client.py | 249 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | gpustack/client/generated_inference_backend_client.py | 252 | # Check if we have accumulated enough items (heuristic) | COMMENT |
| LOW | gpustack/routes/metrics.py | 40 | # Check if we have a cached version | COMMENT |
| LOW | gpustack/routes/metrics.py | 86 | # Write file in thread pool to avoid blocking event loop | COMMENT |
| LOW⚡ | gpustack/routes/inference_backend.py | 1455 | # Check if the backend is being used by any models | COMMENT |
| LOW | gpustack/routes/inference_backend.py | 572 | # Check if this version has any built-in frameworks | COMMENT |
| LOW | gpustack/routes/inference_backend.py | 1366 | # Check if updating to a name that already exists (excluding current backend) | COMMENT |
| LOW | gpustack/routes/inference_backend.py | 1623 | # Check if updating to a name that already exists (excluding current backend) | COMMENT |
| LOW | gpustack/routes/inference_backend.py | 1653 | # Check if any versions are being removed and validate they're not in use | COMMENT |
| LOW | gpustack/routes/inference_backend.py | 1742 | # Check if removed versions are in use | COMMENT |
| LOW⚡ | gpustack/routes/worker/filesystem.py | 121 | # Check if path exists | COMMENT |
| LOW⚡ | gpustack/routes/worker/filesystem.py | 125 | # Check if path is a file | COMMENT |
| LOW⚡ | gpustack/routes/worker/filesystem.py | 129 | # Check if file is a config file for security | COMMENT |
| LOW | gpustack/routes/worker/filesystem.py | 173 | # Check if path exists | COMMENT |
| LOW⚡ | gpustack/routes/worker/filesystem.py | 270 | # Check if file exists | COMMENT |
| LOW⚡ | gpustack/routes/worker/filesystem.py | 276 | # Check if path is a file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | gpustack/mixins/active_record.py | 411 | Parse dot-separated nested field expressions and generate appropriate database expressions for sorting. | STRING |
| HIGH | gpustack/scheduler/calculator.py | 693 | Unified async entry point for getting pretrained config. Handles all model sources with appropriate fallback s | STRING |
| HIGH | gpustack/scheduler/calculator.py | 869 | Read a file from LOCAL_PATH model by querying workers. Steps: 1. Apply filters (GPU selector, label select | STRING |
| HIGH | gpustack/scheduler/calculator.py | 996 | Get pretrained config from remote workers for LOCAL_PATH models. Args: model: Model with source LOCAL_ | STRING |
| HIGH | gpustack/scheduler/calculator.py | 1020 | Calculate model resource claim by running gguf-parser on a worker. Args: model: Model to calculate the | STRING |
| HIGH | gpustack/scheduler/calculator.py | 1276 | Read and parse model_index.json from local directory. Args: path: Directory path containing model_inde | STRING |
| HIGH | gpustack/scheduler/calculator.py | 1310 | Calculate total size of LLM model weights in root directory. Args: path: Directory path to scan R | STRING |
| HIGH | gpustack/scheduler/calculator.py | 1346 | Calculate total size of diffusion model weights. Logic: 1. Read model_index.json to get pipeline component | STRING |
| HIGH | gpustack/scheduler/calculator.py | 1412 | Calculate model weight size based on model type. Unified entry point for calculating model weight sizes. | STRING |
| HIGH | gpustack/server/worker_selector.py | 23 | Find a worker that has access to the specified path. Args: workers: List of workers to sea | STRING |
| HIGH | gpustack/utils/file.py | 109 | Generic async retry wrapper for checking operations. Args: checker: A callable (sync or async) that perform | STRING |
| HIGH | gpustack/schemas/inference_backend.py | 169 | Get configuration for a specific version. Args: version: Version string, uses default_vers | STRING |
| HIGH | gpustack/worker/backends/base.py | 991 | Get the resource requests for the model instance. Args: mount_all_devices: | STRING |
| HIGH | gpustack/client/worker_filesystem_client.py | 131 | Parse a GGUF file on a worker using gguf-parser. Args: worker: The worker to query | STRING |
| HIGH | gpustack/routes/worker/filesystem.py | 49 | Validate path security to prevent directory traversal attacks. This function: 1. Resolves the absolute pat | STRING |
| HIGH | gpustack/routes/worker/logs.py | 480 | Serve one page of a restart's log, addressed by line number. Args: serve_log_dir: Directory containing serv | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/routers/test_workers.py | 148 | # Create a new worker (no existing worker) | COMMENT |
| MEDIUM⚡ | tests/routers/test_workers.py | 161 | # Create an existing worker with some labels | COMMENT |
| MEDIUM | tests/routers/test_workers.py | 32 | # Create an existing worker with maintenance mode enabled | COMMENT |
| MEDIUM | tests/routers/test_workers.py | 48 | # Create a worker registration request without maintenance field | COMMENT |
| MEDIUM | tests/routers/test_workers.py | 79 | # Create an existing worker with maintenance mode enabled | COMMENT |
| MEDIUM | tests/routers/test_workers.py | 95 | # Create a worker update request with maintenance explicitly disabled | COMMENT |
| MEDIUM | tests/routers/test_workers.py | 126 | # Create a new worker registration request | COMMENT |
| MEDIUM | tests/routers/test_workers.py | 177 | # Create a worker update with new labels | COMMENT |
| MEDIUM | …licies/worker_filters/test_backend_framework_filter.py | 100 | # Create a mock session that returns the backend | COMMENT |
| MEDIUM | …licies/worker_filters/test_backend_framework_filter.py | 255 | # Create a worker with mixed GPU types (simulate by modifying the worker) | COMMENT |
| MEDIUM | …licies/worker_filters/test_backend_framework_filter.py | 450 | # Create a worker with empty GPU list | COMMENT |
| MEDIUM | …licies/worker_filters/test_backend_framework_filter.py | 565 | # Create a model that will result in backend_name being None | COMMENT |
| MEDIUM | …licies/worker_filters/test_backend_framework_filter.py | 1079 | # Create a worker with ROCm GPU (incompatible with vLLM in this test scenario) | COMMENT |
| MEDIUM | tests/worker/test_logs.py | 32 | # Create a log file with 2KB in two lines | COMMENT |
| MEDIUM⚡ | gpustack/server/bus.py | 300 | # Create a closure that captures the topic | COMMENT |
| MEDIUM | gpustack/policies/utils.py | 922 | # Create a copy of the worker with sorted GPUs | COMMENT |
| MEDIUM | gpustack/websocket_proxy/message_server.py | 196 | # Create a future that will be resolved when the peer connects | COMMENT |
| MEDIUM | gpustack/websocket_proxy/connection_manager.py | 315 | # Create a tunnel connection for this forward | COMMENT |
| MEDIUM | gpustack/worker/schemas/benchmark_runner.py | 41 | # Define a breakdown for request counts | STRING |
| MEDIUM⚡ | gpustack/routes/inference_backend.py | 1573 | # Create the backend | COMMENT |
| MEDIUM | gpustack/routes/inference_backend.py | 1105 | # Create the response with the same structure as the original | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/routers/test_models.py | 911 | # placement and a credential, plus a plain embedding model. | COMMENT |
| MEDIUM⚡ | tests/worker/test_pd_injection.py | 150 | # No `disaggregation` at all: plain multi-role orchestration. | COMMENT |
| MEDIUM⚡ | tests/routes/test_model_roles_validation.py | 62 | # roles without disaggregation is orchestration, not PD. | COMMENT |
| MEDIUM | tests/routes/test_gpu_service_search_alignment.py | 373 | # which has the cluster-visibility scaffolding this module does not. | COMMENT |
| MEDIUM⚡ | gpustack/server/controllers.py | 951 | # The snapshot convergence path is event-driven; the | COMMENT |
| MEDIUM | gpustack/schemas/benchmark.py | 476 | # across requests (system prompt / RAG context) to exercise prefix-cache | COMMENT |
| MEDIUM | gpustack/schemas/models.py | 1148 | # multi-role orchestration; both together is PD. | COMMENT |
| MEDIUM | gpustack/schemas/models.py | 1159 | # multi-role orchestration), and it wants this just as much. The | COMMENT |
| MEDIUM | gpustack/worker/serve_manager.py | 1145 | # Use the event-driven local cache instead of an API call. | COMMENT |
| MEDIUM | gpustack/assets/model-catalog-modelscope.yaml | 1852 | # SGLang INT4 alternative (better for long agentic sessions via RadixAttention) | COMMENT |
| MEDIUM | gpustack/assets/model-catalog.yaml | 1720 | # SGLang INT4 alternative (better for long agentic sessions via RadixAttention) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 378 | # Step 1: Server1 connects to Server2 as peer | COMMENT |
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 382 | # Step 2: Connect a client to Server2 (not Server1) | COMMENT |
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 395 | # Step 3: Server2 syncs its client to Server1 via peer connection | COMMENT |
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 400 | # Step 4: Server1 disconnects from Server2 | COMMENT |
| LOW⚡ | tests/websocket_proxy/test_server_federation.py | 404 | # Step 5: Server1 should clean up clients synced from Server2 | COMMENT |
| LOW⚡ | gpustack/scheduler/calculator.py | 918 | # Step 1: Apply filters to reduce broadcast scope | COMMENT |
| LOW | gpustack/scheduler/calculator.py | 945 | # Step 2: Broadcast to filtered workers | COMMENT |
| LOW | gpustack/scheduler/calculator.py | 1035 | # Step 1: Apply worker filters before broadcasting | COMMENT |
| LOW | gpustack/scheduler/calculator.py | 1070 | # Step 2: Broadcasting to filtered workers | COMMENT |
| LOW | …es/candidate_selectors/sglang_resource_fit_selector.py | 1080 | # Step 1: Use the minimum GPU memory of all workers to calculate _chunked_prefill_size and _cuda_graph_max_bs. | COMMENT |
| LOW | …es/candidate_selectors/sglang_resource_fit_selector.py | 1166 | # Step 2: Calculate reserved memory by other configs | COMMENT |
| LOW | …es/candidate_selectors/sglang_resource_fit_selector.py | 1218 | # Step 3: adjust mem_fraction_static for VL models | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/server/test_sync_replicas_roles.py | 182 | # reason the deletes are: this harness has no database. | COMMENT |
| LOW | tests/worker/backends/test_backend.py | 1263 | # Script + command is None: just pass the args through under the script. | COMMENT |
| LOW | gpustack/server/cache.py | 155 | # but for now we just use the class name and suffix for simplicity. | COMMENT |
| MEDIUM | gpustack/utils/hub.py | 548 | # Return an empty dict here to facilitate special handling by upstream methods. | COMMENT |
| MEDIUM | gpustack/schemas/pd_modes.py | 647 | """Environment a router needs in order to start at all. | STRING |
| MEDIUM | gpustack/worker/pd_router.py | 58 | """What a managed router needs in order to start.""" | STRING |
| MEDIUM⚡ | gpustack/routes/worker/filesystem.py | 267 | # 2. Path validation - use validate_path_security for robust security | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/gpu_instances/test_operator_settings.py | 732 | CODE | |
| MEDIUM | tests/worker/test_worker_exporter.py | 21 | CODE | |
| MEDIUM | tests/routes/test_model_routes.py | 227 | CODE | |
| MEDIUM | tests/routes/test_model_routes.py | 681 | CODE | |
| MEDIUM | tests/routes/test_gpu_instance_type_flavors.py | 233 | CODE | |
| MEDIUM | tests/gateway/test_operator_subscription.py | 301 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/k8s/test_template_config.py | 125 | processor = Cluster.__table__.c.k8s_options.type.bind_processor(sqlite.dialect()) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/server/test_resource_usage_collector_type_snapshot.py | 65 | CODE | |
| LOW | tests/utils/model.py | 33 | CODE | |
| LOW | tests/worker/test_benchmark_manager.py | 897 | CODE | |
| LOW | tests/routes/test_gpu_instance_types.py | 246 | CODE | |
| LOW | gpustack/server/worker_request.py | 214 | CODE | |
| LOW | gpustack/utils/template.py | 100 | CODE | |
| LOW | gpustack/routes/resource_usage.py | 2259 | CODE | |
| LOW | gpustack/routes/model_revisions.py | 116 | CODE | |
| LOW | gpustack/routes/model_revisions.py | 132 | CODE | |
| LOW | gpustack/routes/model_routes.py | 298 | CODE | |
| LOW | gpustack/routes/benchmarks.py | 130 | CODE | |
| LOW | gpustack/routes/benchmarks.py | 217 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/websocket_proxy/test_connection.py | 89 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_proxy_server.py | 72 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_proxy_server.py | 166 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_proxy_server.py | 343 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_proxy_server.py | 443 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 86 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 181 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 277 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 369 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 458 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 552 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 648 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 784 | async def handle_request(reader, writer): | CODE |
| LOW | tests/websocket_proxy/test_websocket_bench.py | 914 | async def handle_request(reader, writer): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/cloud_providers/test_digital_ocean.py | 64 | return DigitalOceanClient(token='dummy-token') | CODE |
| LOW | tests/api/test_auth.py | 943 | AsyncMock(return_value={"email": "user@example.com", "name": "Test User"}), | CODE |
| LOW⚡ | tests/worker/test_pd_diagnostics.py | 96 | assert "kv_transfer_ifname" in found.summary or "placeholder" in found.summary | CODE |
| LOW | tests/routes/test_cache_services.py | 2203 | assert "placeholder" in exc_info.value.message | CODE |
| LOW | docs/image-selector/index.html | 148 | <pre id="image-list" class="image-commands"><code class="placeholder" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hack/perf/plot_tps_comparison.py | 114 | # Example usage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gpustack/server/controllers.py | 7172 | # sync targets will update model route record so make sure to do it before other operations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gpustack/gateway/__init__.py | 454 | # TODO: add validation in the future | COMMENT |