python / python/cpython

`_remote_debugging`: Degrade gracefully reads instead of failing the whole read completely

Open
#154,194 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

extension-modules topic-profiling type-bug
Dominant language
Python
Stars
77.2k
Forks
35.9k
PR merge metrics
PR metrics pending

Description

Bug report

Bug description:

The implicit problem found in https://discuss.python.org/t/tachyon-97-error-rate/107619 and, subsequently, in #151022 and #151036 is that we're raising exceptions and discarding the whole sample, when we could degrade gracefully and keep most of the information.

There are are many limits from which we can recover gracefully, by truncating the data. In particular: funcnames, filenames, locations, but also some temporary reads from the target and other walking limits.

Raising exceptions causes very high error rates, when it doesn't really need to be the case. Also, we really don't know what might be the limits found in the real apps.

CPython versions tested on:

CPython main branch

Operating systems tested on:

macOS

Linked PRs
  • gh-154195

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the _remote_debugging implementation and review the context in discuss.python.org and issues #151022 and #151036. Examine linked PR #154195 to understand the work already underway and identify the affected limits and tests; done means recoverable read limits no longer discard the whole sample.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.