GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — fix(profiler): reset ThreadContinuousScheduler lock after fork by BetterAndBetterII · Pull Request #7275 · getsentry/sentry-python ConversationSummary
This mirrors the Monitor fix from #6159: register an Scope is deliberately limited to Test plan
Fixes #6165
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsIf os.fork() runs while ThreadContinuousScheduler.lock is held, the child inherits a locked lock with no owner and ensure_running can deadlock. Mirror the Monitor getsentry#6159 pattern: register_at_fork after_in_child reset. Fixes getsentry#6165
sentrivana
pushed a commit
that referenced
this pull request
### Description Removes `ContinuousScheduler.pause()` from `sentry_sdk/profiler/continuous_profiler.py` (3 lines). It's a stub that only raises `NotImplementedError`, and nothing implements it or calls it. #2830 (Jun 2024, "Introduce continuous profiling mode") added it next to `ensure_running()` and `teardown()`. Unlike those two, no subclass ever overrode it, and the SDK never called it. The stub makes it look like the continuous profiler can be paused, but it can't. **Evidence** - `git grep -nw pause` on `master` finds only the definition. Nothing in `sentry_sdk/`, `tests/`, `scripts/` or `docs/` refers to it. - `ThreadContinuousScheduler` and `GeventContinuousScheduler`, the only subclasses, override `ensure_running()` and `teardown()` but not `pause()`. - `git log -S "def pause"` finds only #2830. `git log -S ".pause("` across `sentry_sdk` and `tests` finds no commits, so it has never had a caller. - `ContinuousScheduler` isn't exported from `sentry_sdk.profiler` (`__all__` lists only the transaction-profiler schedulers) and isn't documented. - No open PR or issue mentions it. #7275 also touches `continuous_profiler.py`, but in different hunks (`ThreadContinuousScheduler.__init__`). **Why it's safe** - `ContinuousScheduler` is an internal class. The method is unreachable, so behavior doesn't change, and no public API or documented behavior is affected. **Checks** - `uv run ruff check` / `ruff format --check` on `sentry_sdk/profiler`: clean - `uv run --group typing mypy sentry_sdk`: no issues - `TESTPATH=tests/profiler uv run tox -e py3.14-common`: 106 passed, 69 skipped. The skipped tests are the gevent cases, which need gevent installed. #### Issues None. Found by the weekly sentry-python removal scout. <!-- junior-request-attribution:start --> via [automation `sched_65eed06cc199036c2b13411096f412d4`](https://junior-prod.sentry.dev/automations/sched_65eed06cc199036c2b13411096f412d4) · Run ID `sched_65eed06cc199036c2b13411096f412d4:1794211200000`. <!-- junior-request-attribution:end --> <!-- junior-session-footer:start --> <!-- junior-conversation-id:agent-dispatch%3Adispatch_0096be51ec4ca0f294d1b5786520632b --> -- [View Session](https://junior-prod.sentry.dev/conversations/agent-dispatch%3Adispatch_0096be51ec4ca0f294d1b5786520632b) [[Sentry]](https://sentry.sentry.io/explore/conversations/agent-dispatch%3Adispatch_0096be51ec4ca0f294d1b5786520632b/?project=4510944073809921) <!-- junior-session-footer:end --> Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com> This branch has not been deployedNo deployments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
ReviewersNo reviewsUh oh!
There was an error while loading. Please reload this page. AssigneesNo one assignedLabels
None yet
ProjectsMilestoneNo milestoneDevelopmentSuccessfully merging this pull request may close these issues. Introduce fork-safety toThreadContinuousScheduler
Uh oh!
There was an error while loading. Please reload this page. Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later. |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |