Distributed Task Queue (development branch)
This report presents the forensic synthetic code analysis of celery/celery, a Python project with 28,681 GitHub stars. SynthScan v2.0 examined 108,638 lines of code across 524 source files, recording 2377 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 23.3 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2377 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/conf.py | 90 | def configcheck_project_settings(): | CODE |
| LOW | docs/conf.py | 103 | def configcheck_should_ignore(setting): | CODE |
| LOW | docs/_ext/celerydocs.py | 127 | def maybe_resolve_abbreviations(app, env, node, contnode): | CODE |
| LOW | t/smoke/signals.py | 12 | def worker_process_init_handler(sender, **kwargs): | CODE |
| LOW | t/smoke/signals.py | 17 | def worker_process_shutdown_handler(sender, pid, exitcode, **kwargs): | CODE |
| LOW | t/smoke/tasks.py | 42 | def soft_time_limit_lower_than_time_limit(): | CODE |
| LOW | t/smoke/tasks.py | 47 | def soft_time_limit_must_exceed_time_limit(): | CODE |
| LOW⚡ | t/smoke/tasks.py | 65 | def self_termination_system_exit(): | CODE |
| LOW⚡ | t/smoke/tasks.py | 71 | def countdown_task_with_retry(self): | CODE |
| LOW⚡ | t/smoke/tasks.py | 79 | def non_eta_task_with_retries(self): | CODE |
| LOW | t/smoke/tasks.py | 93 | def self_termination_delay_timeout(): | CODE |
| LOW | t/smoke/tasks.py | 99 | def self_termination_exhaust_memory(): | CODE |
| LOW | t/smoke/tests/test_signals.py | 42 | def before_task_publish_handler(*args, **kwargs): | CODE |
| LOW | t/smoke/tests/test_signals.py | 54 | def after_task_publish_handler(*args, **kwargs): | CODE |
| LOW | t/smoke/tests/test_control.py | 14 | def test_shutdown_exit_with_zero(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_canvas.py | 38 | def test_chain_gets_last_task_id_with_failing_tasks_in_chain(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_canvas.py | 56 | def test_upgrade_to_chord_inside_chains(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_canvas.py | 144 | def test_chord_error_propagation_with_different_body_types( | CODE |
| LOW | t/smoke/tests/test_canvas.py | 185 | def test_pending_tasks_released_on_forget(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 37 | def test_restart_during_task_execution( | CODE |
| LOW | t/smoke/tests/test_worker.py | 48 | def test_restart_between_task_execution( | CODE |
| LOW | t/smoke/tests/test_worker.py | 86 | def test_multiple_warm_shutdown_does_nothing(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 115 | def test_hard_shutdown_from_warm(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 131 | def test_hard_shutdown_from_cold(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 162 | def test_shutdown_with_long_running_tasks(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 199 | def test_hard_shutdown_from_cold(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 238 | def test_hard_shutdown_from_soft(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 253 | def test_task_completes_during_soft_shutdown(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 282 | def test_task_completes_during_soft_shutdown_with_time_limit(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 338 | def test_hard_shutdown_from_soft(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 370 | def test_soft_shutdown_reset_visibility_timeout(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 391 | def test_soft_shutdown_reset_visibility_timeout_group_one_finish(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 416 | def test_soft_shutdown_reset_visibility_timeout_group_none_finish(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 450 | def test_soft_shutdown_reset_visibility_timeout(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_worker.py | 471 | def test_soft_shutdown_reset_visibility_timeout_group_one_finish( | CODE |
| LOW | t/smoke/tests/test_tasks.py | 33 | def test_child_process_respawn( | CODE |
| LOW | t/smoke/tests/test_tasks.py | 53 | def wait_for_two_celery_processes(): | CODE |
| LOW | t/smoke/tests/test_tasks.py | 98 | def test_terminated_task_logs_correct_error( | CODE |
| LOW | t/smoke/tests/test_tasks.py | 137 | def test_soft_time_limit_lower_than_time_limit(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_tasks.py | 143 | def test_soft_time_limit_must_exceed_time_limit(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_consumer.py | 40 | def test_reducing_prefetch_count(self, celery_setup: CeleryTestSetup, expected_running_tasks_count: int): | CODE |
| LOW | t/smoke/tests/test_consumer.py | 63 | def test_prefetch_count_restored(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_consumer.py | 86 | def test_max_prefetch_passed_on_broker_restart(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_consumer.py | 107 | def test_max_prefetch_not_passed_on_broker_restart(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_consumer.py | 121 | def test_worker_consume_tasks_after_redis_broker_restart( | CODE |
| LOW | t/smoke/tests/test_consumer.py | 149 | def test_worker_does_not_hang_on_broker_connection_loss( | CODE |
| LOW⚡ | t/smoke/tests/test_dedup_chain_dispatch.py | 33 | def test_reject_requeue_completes_chain(self, celery_setup: CeleryTestSetup): | CODE |
| LOW⚡ | t/smoke/tests/test_dedup_chain_dispatch.py | 42 | def test_dedup_dispatches_chain_on_redelivery(self, celery_setup: CeleryTestSetup): | CODE |
| LOW⚡ | t/smoke/tests/test_dedup_chain_dispatch.py | 51 | def test_dedup_dispatches_callback_on_redelivery(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/test_thread_safe.py | 50 | def test_multithread_task_publish( | CODE |
| LOW | t/smoke/tests/test_thread_safe.py | 58 | def after_task_publish_handler(*args, **kwargs): | CODE |
| LOW | t/smoke/tests/stamping/test_revoke.py | 47 | def test_revoke_by_stamped_headers_after_publish( | CODE |
| LOW | t/smoke/tests/stamping/test_revoke.py | 63 | def test_revoke_by_stamped_headers_before_publish( | CODE |
| LOW | t/smoke/tests/stamping/conftest.py | 10 | def default_rabbitmq_broker_image() -> str: | CODE |
| LOW | t/smoke/tests/stamping/test_hybrid_cluster.py | 12 | def get_hybrid_clusters_matrix() -> list[list[str]]: | CODE |
| LOW | t/smoke/tests/stamping/test_hybrid_cluster.py | 83 | def test_multiple_stamps_multiple_workers(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/stamping/test_hybrid_cluster.py | 109 | def test_stamping_on_replace_with_legacy_worker_in_cluster( | CODE |
| LOW | t/smoke/tests/quorum_queues/test_cycle_detection.py | 16 | def test_countdown_task_with_retry(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/quorum_queues/test_cycle_detection.py | 22 | def test_non_eta_task_with_multiple_retries(self, celery_setup: CeleryTestSetup): | CODE |
| LOW | t/smoke/tests/quorum_queues/conftest.py | 34 | def default_rabbitmq_broker_image() -> str: | CODE |
| 1737 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | t/unit/tasks/test_canvas.py | 269 | x.type.app.control.election.assert_called() | CODE |
| CRITICAL | t/unit/app/test_app.py | 1655 | self.app.amqp.queues.select.assert_called_with({'foo', 'bar'}) | CODE |
| CRITICAL⚡ | t/unit/backends/test_redis.py | 217 | consumer.backend.client.connection_pool.reset.assert_called_once() | CODE |
| CRITICAL⚡ | t/unit/backends/test_redis.py | 223 | consumer.backend.client.connection_pool.reset.reset_mock() | CODE |
| CRITICAL⚡ | t/unit/backends/test_redis.py | 226 | consumer.backend.client.connection_pool.reset.assert_called_once() | CODE |
| CRITICAL⚡ | t/unit/backends/test_redis.py | 232 | consumer.backend.client.connection_pool.reset.reset_mock() | CODE |
| CRITICAL⚡ | t/unit/backends/test_redis.py | 1561 | self.b.client.pipeline.return_value.zadd().zcount().get().get().expire( | CODE |
| CRITICAL⚡ | t/unit/backends/test_redis.py | 1573 | self.b.client.pipeline.return_value.zadd().zcount().get().get().expire( | CODE |
| CRITICAL⚡ | t/unit/backends/test_redis.py | 1589 | self.b.client.pipeline.return_value.rpush().llen().get().get().expire( | CODE |
| CRITICAL⚡ | t/unit/backends/test_redis.py | 1605 | self.b.client.pipeline.return_value.zadd().zcount().get().get().expire( | CODE |
| CRITICAL | t/unit/backends/test_redis.py | 1529 | self.b.client.pipeline.return_value.zadd().zcount().get().get().expire( | CODE |
| CRITICAL | t/unit/backends/test_redis.py | 1545 | self.b.client.pipeline.return_value.rpush().llen().get().get().expire( | CODE |
| CRITICAL | t/unit/worker/test_strategy.py | 283 | C.consumer.controller.state.revoked.add(task.id) | CODE |
| CRITICAL⚡ | t/unit/worker/test_worker.py | 744 | self.app.amqp.queues.select_add.assert_called_with( | CODE |
| CRITICAL | t/integration/test_canvas.py | 1966 | root_id, parent_id, value = res.parent.parent.parent.parent.get( | CODE |
| CRITICAL | celery/backends/azureblockblob.py | 13 | from azure.core.exceptions import ResourceExistsError, ResourceNotFoundError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/changelog_formatter.py | 22 | print(f"Error: {filename} file not found.") | CODE |
| LOW | t/smoke/tests/test_tasks.py | 107 | except Exception as err: | CODE |
| LOW | …smoke/tests/quorum_queues/test_chord_unlock_routing.py | 62 | except Exception as exc: | CODE |
| LOW⚡ | t/unit/tasks/test_tasks.py | 112 | except Exception as exc: | CODE |
| LOW⚡ | t/unit/tasks/test_tasks.py | 125 | except Exception as exc: | CODE |
| LOW⚡ | t/unit/tasks/test_tasks.py | 186 | except Exception as exc: | CODE |
| LOW⚡ | t/unit/app/test_schedules.py | 672 | except Exception as exc: | CODE |
| LOW | t/unit/app/test_log.py | 102 | except Exception: | CODE |
| LOW | t/unit/app/test_trace.py | 32 | except Exception as e: | CODE |
| LOW⚡ | t/unit/app/test_trace.py | 92 | except Exception: | CODE |
| LOW⚡ | t/unit/app/test_trace.py | 109 | except Exception: | CODE |
| LOW⚡ | t/unit/app/test_trace.py | 132 | except Exception as exc: | CODE |
| LOW⚡ | t/unit/bin/test_control.py | 153 | except Exception as exc: | CODE |
| LOW | t/unit/backends/test_database.py | 391 | except Exception as exc: | CODE |
| LOW⚡ | t/unit/backends/test_elasticsearch.py | 904 | except Exception as exc: | CODE |
| LOW | t/unit/backends/test_elasticsearch.py | 857 | except Exception as exc: | CODE |
| LOW | t/unit/backends/test_base.py | 1607 | except Exception as exc: | CODE |
| LOW | t/unit/backends/test_base.py | 1670 | except Exception as exc: | CODE |
| LOW | t/unit/backends/test_base.py | 1701 | except Exception as exc: | CODE |
| MEDIUM | t/unit/backends/test_asynchronous.py | 577 | def teardown_thread(self, thread): | CODE |
| LOW | t/unit/backends/test_asynchronous.py | 582 | except Exception: | CODE |
| LOW | t/unit/utils/test_sysinfo.py | 10 | except Exception: | CODE |
| LOW | t/unit/utils/test_collections.py | 142 | except Exception: | CODE |
| MEDIUM | t/unit/utils/test_collections.py | 138 | def test_exception_info(self): | CODE |
| MEDIUM | t/unit/worker/test_request.py | 104 | def test_retry_semipredicate(self): | CODE |
| MEDIUM | t/unit/worker/test_request.py | 416 | def test_on_failure_WorkerLostError_rejects_with_requeue(self): | CODE |
| MEDIUM | t/unit/worker/test_request.py | 925 | def get_ei(): | CODE |
| LOW⚡ | t/unit/worker/test_request.py | 912 | except Exception: | CODE |
| LOW⚡ | t/unit/worker/test_request.py | 1482 | except Exception as exc: | CODE |
| LOW | t/unit/worker/test_request.py | 107 | except Exception as exc: | CODE |
| LOW | t/unit/worker/test_request.py | 1505 | except Exception as exc: | CODE |
| LOW | t/integration/conftest.py | 111 | except Exception as e: | CODE |
| MEDIUM | t/integration/test_canvas.py | 348 | def test_chain_error_handler_with_eta(self, manager): | CODE |
| LOW | t/integration/test_canvas.py | 3318 | except Exception as exc: | CODE |
| LOW | t/integration/test_canvas.py | 3834 | except Exception: | CODE |
| LOW | t/integration/test_mem_leak_in_exception_handling.py | 113 | except Exception: | CODE |
| LOW | t/integration/test_mem_leak_in_exception_handling.py | 125 | except Exception: | CODE |
| LOW | t/integration/test_mem_leak_in_exception_handling.py | 136 | except Exception: | CODE |
| LOW | t/integration/test_mem_leak_in_exception_handling.py | 189 | except Exception: | CODE |
| LOW | t/integration/test_mem_leak_in_exception_handling.py | 230 | except Exception: | CODE |
| LOW | t/integration/test_tasks.py | 490 | except Exception as exc: | CODE |
| LOW | t/integration/test_tasks.py | 769 | except Exception: | CODE |
| LOW | t/integration/test_tasks.py | 791 | except Exception: | CODE |
| LOW | t/integration/test_tasks.py | 816 | except Exception: | CODE |
| LOW | celery/bootsteps.py | 149 | except Exception as exc: # pylint: disable=broad-except | CODE |
| LOW | celery/platforms.py | 490 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | celery/local.py | 326 | except Exception: | CODE |
| MEDIUM | celery/local.py | 69 | def __name__(self): | CODE |
| LOW | celery/beat.py | 283 | except Exception as exc: # pylint: disable=broad-except | CODE |
| LOW | celery/beat.py | 411 | except Exception as exc: # pylint: disable=broad-except | CODE |
| LOW | celery/beat.py | 540 | except Exception as exc: # pylint: disable=broad-except | CODE |
| MEDIUM | celery/beat.py | 427 | def _do_sync(self): | CODE |
| LOW | celery/app/trace.py | 549 | except Exception as exc: | CODE |
| LOW | celery/app/trace.py | 604 | except Exception as exc: | CODE |
| LOW | celery/app/trace.py | 670 | except Exception as exc: | CODE |
| LOW | celery/app/trace.py | 677 | except Exception as exc: | CODE |
| LOW | celery/app/trace.py | 698 | except Exception as exc: | CODE |
| LOW | celery/app/task.py | 863 | except Exception as exc: | CODE |
| LOW | celery/app/builtins.py | 67 | except Exception as exc: | CODE |
| LOW | celery/app/builtins.py | 82 | except Exception as exc: # pylint: disable=broad-except | CODE |
| 94 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | t/smoke/conftest.py | 1 | CODE | |
| LOW | t/smoke/conftest.py | 14 | CODE | |
| LOW | t/smoke/conftest.py | 15 | CODE | |
| LOW | t/smoke/conftest.py | 16 | CODE | |
| LOW | t/smoke/conftest.py | 17 | CODE | |
| LOW | t/smoke/tasks.py | 3 | CODE | |
| LOW | t/smoke/tasks.py | 13 | CODE | |
| LOW | t/smoke/tests/test_tasks.py | 1 | CODE | |
| LOW | t/smoke/tests/test_dedup_chain_dispatch.py | 10 | CODE | |
| LOW | t/smoke/tests/test_thread_safe.py | 1 | CODE | |
| LOW | t/smoke/tests/stamping/test_revoke.py | 1 | CODE | |
| LOW | t/smoke/tests/stamping/conftest.py | 4 | CODE | |
| LOW | t/smoke/tests/stamping/test_hybrid_cluster.py | 1 | CODE | |
| LOW | t/smoke/tests/stamping/test_visitor.py | 1 | CODE | |
| LOW | t/smoke/tests/quorum_queues/test_cycle_detection.py | 6 | CODE | |
| LOW | t/smoke/tests/quorum_queues/conftest.py | 1 | CODE | |
| LOW | …smoke/tests/quorum_queues/test_chord_unlock_routing.py | 8 | CODE | |
| LOW | …/quorum_queues/test_native_delayed_delivery_binding.py | 8 | CODE | |
| LOW | t/smoke/tests/quorum_queues/test_qos.py | 8 | CODE | |
| LOW | t/smoke/tests/quorum_queues/test_default_queue_type.py | 6 | CODE | |
| LOW | t/smoke/tests/failover/test_worker_failover.py | 1 | CODE | |
| LOW | t/smoke/operations/worker_kill.py | 1 | CODE | |
| LOW | t/smoke/operations/task_termination.py | 1 | CODE | |
| LOW | t/smoke/operations/worker_restart.py | 1 | CODE | |
| LOW | t/smoke/workers/other.py | 1 | CODE | |
| LOW | t/smoke/workers/alt.py | 1 | CODE | |
| LOW | t/unit/conftest.py | 23 | CODE | |
| LOW | t/unit/conftest.py | 23 | CODE | |
| LOW | t/unit/conftest.py | 23 | CODE | |
| LOW | t/unit/bin/test_daemonization.py | 1 | CODE | |
| LOW | t/unit/bin/proj/app2.py | 1 | CODE | |
| LOW | t/unit/contrib/test_sphinx.py | 6 | CODE | |
| LOW | t/unit/contrib/test_worker.py | 7 | CODE | |
| LOW | t/unit/contrib/proj/foo.py | 1 | CODE | |
| LOW | t/integration/conftest.py | 9 | CODE | |
| LOW | t/integration/conftest.py | 9 | CODE | |
| LOW | examples/celery_http_gateway/urls.py | 2 | CODE | |
| LOW | examples/celery_http_gateway/urls.py | 2 | CODE | |
| LOW | examples/celery_http_gateway/urls.py | 2 | CODE | |
| LOW | examples/stamping/myapp.py | 34 | CODE | |
| LOW | examples/django/proj/__init__.py | 3 | CODE | |
| LOW | examples/django/proj/urls.py | 1 | CODE | |
| LOW | examples/django/proj/urls.py | 1 | CODE | |
| LOW | examples/django/proj/urls.py | 2 | CODE | |
| LOW | examples/django/proj/urls.py | 2 | CODE | |
| LOW | celery/__init__.py | 75 | CODE | |
| LOW | celery/__init__.py | 75 | CODE | |
| LOW | celery/__init__.py | 76 | CODE | |
| LOW | celery/__init__.py | 77 | CODE | |
| LOW | celery/__init__.py | 78 | CODE | |
| LOW | celery/__init__.py | 79 | CODE | |
| LOW | celery/__init__.py | 80 | CODE | |
| LOW | celery/__init__.py | 80 | CODE | |
| LOW | celery/__init__.py | 80 | CODE | |
| LOW | celery/__init__.py | 80 | CODE | |
| LOW | celery/__init__.py | 80 | CODE | |
| LOW | celery/__init__.py | 80 | CODE | |
| LOW | celery/__init__.py | 80 | CODE | |
| LOW | celery/__init__.py | 80 | CODE | |
| LOW | celery/__init__.py | 80 | CODE | |
| 98 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 64 | CODE | |
| LOW | t/unit/conftest.py | 314 | CODE | |
| LOW | t/unit/conftest.py | 525 | CODE | |
| LOW | t/unit/tasks/test_chord.py | 134 | CODE | |
| LOW | t/unit/app/test_schedules.py | 668 | CODE | |
| LOW | t/unit/backends/test_couchdb.py | 129 | CODE | |
| LOW | t/unit/contrib/test_rdb.py | 33 | CODE | |
| LOW | t/unit/fixups/test_django.py | 198 | CODE | |
| LOW | t/unit/worker/test_native_delayed_delivery.py | 179 | CODE | |
| LOW | t/unit/worker/test_consumer.py | 690 | CODE | |
| LOW | t/integration/test_canvas.py | 83 | CODE | |
| LOW | t/integration/test_tasks.py | 308 | CODE | |
| LOW | examples/quorum-queues/myapp.py | 71 | CODE | |
| LOW | celery/bootsteps.py | 137 | CODE | |
| LOW | celery/platforms.py | 106 | CODE | |
| LOW | celery/local.py | 320 | CODE | |
| LOW | celery/__init__.py | 88 | CODE | |
| LOW | celery/beat.py | 569 | CODE | |
| LOW | celery/beat.py | 633 | CODE | |
| LOW | celery/canvas.py | 74 | CODE | |
| LOW | celery/canvas.py | 960 | CODE | |
| LOW | celery/canvas.py | 1120 | CODE | |
| LOW | celery/canvas.py | 2191 | CODE | |
| LOW | celery/schedules.py | 434 | CODE | |
| LOW | celery/app/trace.py | 137 | CODE | |
| LOW | celery/app/trace.py | 344 | CODE | |
| LOW | celery/app/trace.py | 426 | CODE | |
| LOW | celery/app/trace.py | 475 | CODE | |
| LOW | celery/app/task.py | 536 | CODE | |
| LOW | celery/app/control.py | 512 | CODE | |
| LOW | celery/app/utils.py | 327 | CODE | |
| LOW | celery/app/utils.py | 378 | CODE | |
| LOW | celery/app/utils.py | 329 | CODE | |
| LOW | celery/app/defaults.py | 428 | CODE | |
| LOW | celery/app/base.py | 846 | CODE | |
| LOW | celery/bin/control.py | 26 | CODE | |
| LOW | celery/bin/shell.py | 120 | CODE | |
| LOW | celery/bin/logtool.py | 78 | CODE | |
| LOW | celery/backends/gcs.py | 247 | CODE | |
| LOW | celery/backends/filesystem.py | 98 | CODE | |
| LOW | celery/backends/redis.py | 149 | CODE | |
| LOW | celery/backends/redis.py | 593 | CODE | |
| LOW | celery/backends/base.py | 188 | CODE | |
| LOW | celery/backends/base.py | 254 | CODE | |
| LOW | celery/backends/base.py | 360 | CODE | |
| LOW | celery/backends/base.py | 457 | CODE | |
| LOW | celery/backends/base.py | 581 | CODE | |
| LOW | celery/backends/base.py | 635 | CODE | |
| LOW | celery/backends/base.py | 1188 | CODE | |
| LOW | celery/backends/database/session.py | 80 | CODE | |
| LOW | celery/utils/log.py | 45 | CODE | |
| LOW | celery/utils/log.py | 145 | CODE | |
| LOW | celery/utils/saferepr.py | 158 | CODE | |
| LOW | celery/utils/saferepr.py | 197 | CODE | |
| LOW | celery/utils/imports.py | 48 | CODE | |
| LOW | celery/utils/imports.py | 69 | CODE | |
| LOW | celery/utils/timer2.py | 79 | CODE | |
| LOW | celery/utils/threads.py | 62 | CODE | |
| LOW | celery/utils/functional.py | 215 | CODE | |
| LOW | celery/utils/functional.py | 318 | CODE | |
| 35 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | t/smoke/tests/test_canvas.py | 160 | # Create the failing group header (same for all tests) | COMMENT |
| MEDIUM | t/smoke/tests/test_canvas.py | 169 | # Create the chord | COMMENT |
| MEDIUM | t/unit/tasks/test_canvas.py | 2005 | # Create a chord with header group and body chain | COMMENT |
| MEDIUM | t/unit/tasks/test_canvas.py | 2026 | # Create a chord with header group and body chain (no task_id set) | COMMENT |
| MEDIUM | t/unit/tasks/test_tasks.py | 1712 | # Create a mock parent task with no root_id | COMMENT |
| MEDIUM | t/unit/app/test_trace.py | 21 | # Create a nested call stack to have frames to clear | COMMENT |
| MEDIUM | t/unit/bin/proj/pyramid_celery_app.py | 7 | # This module defines a mocked Celery application to replicate | COMMENT |
| MEDIUM | t/unit/backends/test_redis.py | 377 | # Create a mock result object with _iter_meta | COMMENT |
| MEDIUM | t/unit/backends/test_redis.py | 407 | # Create a mock result object with _iter_meta | COMMENT |
| MEDIUM | t/unit/backends/test_redis.py | 437 | # Create a mock result object with _iter_meta | COMMENT |
| MEDIUM | t/unit/backends/test_redis.py | 466 | # Create a mock result object with _iter_meta | COMMENT |
| MEDIUM | t/unit/backends/test_redis.py | 504 | # Create a mock result object with _iter_meta | COMMENT |
| MEDIUM | t/unit/backends/test_base.py | 872 | # Create a mock that properly implements the | COMMENT |
| MEDIUM | t/unit/concurrency/test_prefork.py | 580 | # Create a mock generator (already started, so not gen_not_started) | COMMENT |
| MEDIUM | t/unit/worker/test_strategy.py | 130 | # Create a proper mock for task_buckets that supports __getitem__ | COMMENT |
| MEDIUM | t/unit/worker/test_native_delayed_delivery.py | 167 | # Create a dummy float iterator | COMMENT |
| MEDIUM | t/unit/worker/test_native_delayed_delivery.py | 183 | # Define a custom errback to check types | COMMENT |
| MEDIUM | t/unit/worker/test_native_delayed_delivery.py | 427 | # Create a queue | COMMENT |
| MEDIUM | t/unit/worker/test_autoscale.py | 244 | # Create a mock consumer with autoscale and disable_prefetch enabled | COMMENT |
| MEDIUM | t/integration/test_canvas.py | 3268 | # Create the failing group header (same for all tests) | COMMENT |
| MEDIUM | celery/app/trace.py | 483 | # This function is very long because we've unrolled all the calls | COMMENT |
| MEDIUM | celery/concurrency/asynpool.py | 496 | # This method is called whenever the process sentinel is readable. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | t/unit/tasks/test_context.py | 88 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | t/unit/tasks/test_context.py | 90 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | t/unit/backends/test_asynchronous.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | t/unit/backends/test_asynchronous.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | t/unit/backends/test_asynchronous.py | 170 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | t/unit/backends/test_asynchronous.py | 172 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | t/unit/backends/test_asynchronous.py | 324 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | t/unit/backends/test_asynchronous.py | 326 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | t/unit/worker/test_consumer.py | 1471 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | t/unit/worker/test_consumer.py | 1473 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | t/unit/worker/test_consumer.py | 1493 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | t/unit/worker/test_consumer.py | 1495 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | t/unit/worker/test_consumer.py | 1528 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | t/unit/worker/test_consumer.py | 1530 | # ------------------------------------------------------------------ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | t/unit/tasks/test_canvas.py | 1118 | _task_stack.push(self.add) | CODE |
| HIGH | t/unit/app/test_log.py | 327 | _task_stack.push(test_task) | CODE |
| HIGH | t/unit/app/test_app.py | 476 | _state._task_stack.push(foo) | CODE |
| HIGH | t/unit/app/test_app.py | 898 | _task_stack.push(a3cX1) | CODE |
| HIGH | t/unit/backends/test_rpc.py | 252 | _task_stack.push(task) | CODE |
| HIGH | t/unit/utils/test_threads.py | 60 | x.push(['foo']) | CODE |
| HIGH | t/unit/utils/test_threads.py | 71 | x.push(['foo']) | CODE |
| HIGH | t/unit/utils/test_threads.py | 72 | x.push(['bar']) | CODE |
| HIGH | celery/app/task.py | 496 | _task_stack.push(self) | CODE |
| HIGH | celery/app/task.py | 1235 | self.request_stack.push(Context(*args, **{**self.request.__dict__, **kwargs})) | CODE |
| HIGH | celery/utils/threads.py | 163 | >>> ls.push(42) | STRING |
| HIGH | celery/utils/threads.py | 166 | >>> ls.push(23) | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | t/unit/app/test_control.py | 73 | CODE | |
| LOW | t/integration/tasks.py | 334 | CODE | |
| LOW | t/integration/test_canvas.py | 861 | CODE | |
| LOW | t/integration/test_canvas.py | 3559 | CODE | |
| LOW | t/integration/test_canvas.py | 3611 | CODE | |
| LOW | celery/result.py | 191 | CODE | |
| LOW | celery/result.py | 726 | CODE | |
| LOW | celery/result.py | 742 | CODE | |
| LOW | celery/result.py | 848 | CODE | |
| LOW | celery/beat.py | 117 | CODE | |
| LOW | celery/canvas.py | 323 | CODE | |
| LOW | celery/canvas.py | 1048 | CODE | |
| LOW | celery/canvas.py | 1120 | CODE | |
| LOW | celery/canvas.py | 1763 | CODE | |
| LOW | celery/canvas.py | 2153 | CODE | |
| LOW | celery/app/amqp.py | 63 | CODE | |
| LOW | celery/app/amqp.py | 326 | CODE | |
| LOW | celery/app/amqp.py | 420 | CODE | |
| LOW | celery/app/amqp.py | 506 | CODE | |
| LOW | celery/app/trace.py | 344 | CODE | |
| LOW | celery/app/task.py | 869 | CODE | |
| LOW | celery/app/control.py | 82 | CODE | |
| LOW | celery/app/control.py | 755 | CODE | |
| LOW | celery/app/base.py | 343 | CODE | |
| LOW | celery/app/base.py | 846 | CODE | |
| LOW | celery/app/base.py | 1059 | CODE | |
| LOW | celery/app/base.py | 1102 | CODE | |
| LOW | celery/bin/worker.py | 108 | CODE | |
| LOW | celery/bin/worker.py | 307 | CODE | |
| LOW | celery/security/__init__.py | 44 | CODE | |
| LOW | celery/utils/time.py | 407 | CODE | |
| LOW | celery/contrib/migrate.py | 127 | CODE | |
| LOW | celery/contrib/migrate.py | 337 | CODE | |
| LOW | celery/contrib/migrate.py | 249 | CODE | |
| LOW | celery/contrib/testing/manager.py | 48 | CODE | |
| LOW | celery/contrib/testing/mocks.py | 11 | CODE | |
| LOW | celery/concurrency/gevent.py | 28 | CODE | |
| LOW | celery/concurrency/asynpool.py | 111 | CODE | |
| LOW | celery/concurrency/base.py | 22 | CODE | |
| LOW | celery/worker/worker.py | 351 | CODE | |
| LOW | celery/worker/control.py | 52 | CODE | |
| LOW | celery/worker/request.py | 90 | CODE | |
| LOW | celery/worker/consumer/consumer.py | 191 | CODE | |
| LOW | celery/events/dispatcher.py | 58 | CODE | |
| LOW | celery/events/receiver.py | 36 | CODE | |
| LOW | celery/events/state.py | 161 | CODE | |
| LOW | celery/events/state.py | 407 | CODE | |
| LOW | celery/events/state.py | 190 | CODE | |
| LOW | celery/apps/multi.py | 370 | CODE | |
| LOW | celery/apps/beat.py | 46 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/resultgraph/tasks.py | 1 | # Example:: | COMMENT |
| LOW | examples/django/proj/urls.py | 1 | from django.conf.urls import handler404, handler500 # noqa | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | celery/__init__.py | 1 | """Distributed Task Queue.""" | COMMENT |
| LOW | celery/canvas.py | 881 | # Issue #5354 reported that the following type of canvases | COMMENT |
| LOW | celery/canvas.py | 901 | # variable above. | COMMENT |
| LOW | celery/canvas.py | 1801 | # end up messing up chord counts and there are all sorts of | COMMENT |
| LOW | celery/app/trace.py | 841 | BaseTask.__call__ = _patched.pop('BaseTask.__call__') | COMMENT |
| LOW | celery/app/task.py | 241 | max_retries = 3 | COMMENT |
| LOW | celery/app/task.py | 261 | COMMENT | |
| LOW | celery/app/task.py | 281 | COMMENT | |
| LOW | celery/app/task.py | 301 | COMMENT | |
| LOW | celery/app/task.py | 321 | #: :setting:`task_acks_on_failure_or_timeout` setting. | COMMENT |
| LOW | celery/app/task.py | 341 | #: Configuring this setting only applies to tasks that are | COMMENT |
| LOW | celery/app/task.py | 361 | #: Tuple of expected exceptions. | COMMENT |
| LOW | celery/backends/dynamodb.py | 361 | # | COMMENT |
| LOW | celery/backends/base.py | 221 | # that the last chain element which controls completion of | COMMENT |
| LOW | celery/backends/base.py | 501 | # backend with the os as the module, the system function as the | COMMENT |
| LOW | celery/concurrency/asynpool.py | 801 | self.on_inqueue_close = on_inqueue_close | COMMENT |
| LOW | celery/concurrency/asynpool.py | 1081 | self._active_writers.clear() | COMMENT |
| LOW | celery/worker/loops.py | 101 | # Reset the hub on error (e.g. connection loss) to clean up | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | t/smoke/workers/other.py | 0 | creates a pytest-celery worker node from the worker container. | STRING |
| HIGH | t/smoke/workers/alt.py | 0 | creates a pytest-celery worker node from the worker container. | STRING |
| HIGH | t/smoke/workers/latest.py | 0 | creates a pytest-celery worker node from the worker container. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | t/unit/backends/test_elasticsearch.py | 729 | url = 'elasticsearch+https://fake_user:fake_pass@localhost:9200/index/doc_type' | CODE |
| LOW⚡ | t/unit/backends/test_elasticsearch.py | 733 | assert x.username == 'fake_user' | CODE |
| LOW⚡ | t/unit/backends/test_elasticsearch.py | 740 | http_auth=('fake_user', 'fake_pass'), | CODE |
| LOW | t/unit/apps/test_multi.py | 183 | self.node = Node('foo@bar.com', options={'-A': 'proj'}) | CODE |
| LOW | t/unit/apps/test_multi.py | 190 | 'foo@bar.com', | CODE |
| LOW | t/unit/apps/test_multi.py | 284 | 'foo@bar.com', | CODE |
| LOW | t/unit/apps/test_multi.py | 293 | 'foo@bar.com', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | t/integration/conftest.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | t/integration/test_mem_leak_in_exception_handling.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | celery/backends/rpc.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | celery/backends/database/__init__.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | celery/utils/time.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | celery/worker/consumer/delayed_delivery.py | 112 | def _setup_delayed_delivery(self, c: Consumer, broker_url: str) -> None: | CODE |
| LOW | celery/apps/beat.py | 149 | def set_process_title(self) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/celery_http_gateway/settings.py | 90 | # Don't forget to use absolute paths, not relative paths. | COMMENT |
| MEDIUM | celery/app/amqp.py | 245 | # For example, you can use ``autoexchange = lambda n: None`` to use the | COMMENT |
| LOW | celery/app/task.py | 357 | #: Warning: Enabling this can cause message loops; make sure you know | COMMENT |
| MEDIUM | celery/bin/multi.py | 71 | $ # but you can also modify the options for ranges of, or specific workers | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | t/unit/tasks/test_canvas.py | 1255 | # In the following tests, getting the group ID is a pain so we just use | COMMENT |
| LOW | celery/app/utils.py | 261 | # no settings, just use new format. | COMMENT |
| LOW | celery/utils/threads.py | 333 | # since each thread has its own greenlet we can just use those as | COMMENT |
| LOW | celery/worker/consumer/consumer.py | 611 | # Retry disabled, just call connect directly. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | t/unit/app/test_trace.py | 87 | def test_function(): | CODE |
| LOW⚡ | t/unit/app/test_trace.py | 104 | def test_function(): | CODE |
| LOW⚡ | t/unit/app/test_trace.py | 127 | def test_function(): | CODE |
| LOW | t/unit/concurrency/test_pool.py | 10 | def do_something(i): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | celery/worker/consumer/delayed_delivery.py | 232 | Validate and split broker URLs. Args: broker_urls: Broker URLs, either as a semicolon-separated str | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | t/unit/utils/test_functional.py | 166 | CODE | |
| MEDIUM | t/unit/worker/test_loops.py | 401 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | t/integration/test_canvas.py | 3289 | # Check if the message appears in the logs (it shouldn't) | COMMENT |
| LOW | examples/django/demoapp/tasks.py | 48 | retry_jitter=False, # Set False to disable randomization (use exact values: 5s, 10s, 20s) | CODE |
| LOW | celery/schedules.py | 677 | # Check if the last feasible date is within the deadline | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | celery/bin/worker.py | 54 | # we need to check if the worker pool was configured. | COMMENT |
| LOW | celery/worker/request.py | 638 | # According to the comment below, we need to check if the task | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | celery/canvas.py | 929 | # WARNING: Be careful not to mutate `options['chain']`. | COMMENT |