Skip to content

gh-82183: Do not restart the busy IDLE shell when running without restart#152745

Merged
terryjreedy merged 1 commit into
python:mainfrom
serhiy-storchaka:gh-82183-run-executing-no-restart
Jul 1, 2026
Merged

gh-82183: Do not restart the busy IDLE shell when running without restart#152745
terryjreedy merged 1 commit into
python:mainfrom
serhiy-storchaka:gh-82183-run-executing-no-restart

Conversation

@serhiy-storchaka

@serhiy-storchaka serhiy-storchaka commented Jul 1, 2026

Copy link
Copy Markdown
Member

The AttributeError in the original report (bpo-38002) was fixed by bpo-42508. This addresses the remaining problem noted by @terryjreedy: with the Shell busy executing code (e.g. blocked on input()), using "Run... Customized" with "Restart shell" unchecked restarted the subprocess anyway.

run_module_event skips the explicit restart_subprocess when restart is unchecked, but runcode then restarts the busy shell on its own, overriding the user's choice and killing the pending input.

The new code cannot run in the busy shell's namespace without restarting it, so when restart is unchecked and the shell is executing it now reports "Already executing" and aborts, instead of restarting anyway.

🤖 Generated with Claude Code

…ut restart

"Run... Customized" with "Restart shell" unchecked restarted the shell
anyway when it was busy executing code, killing any pending input.  It now
reports that the shell is executing and does not run.
@serhiy-storchaka serhiy-storchaka added needs backport to 3.13 bugs and security fixes needs backport to 3.14 bugs and security fixes needs backport to 3.15 pre-release feature fixes, bugs and security fixes labels Jul 1, 2026
@terryjreedy

Copy link
Copy Markdown
Member

With the patch, the message is displayed just once instead of twice.

I added a draft doc issue on the project page to maybe say something in the doc.

@terryjreedy terryjreedy merged commit be449b1 into python:main Jul 1, 2026
100 of 103 checks passed
@miss-islington-app

Copy link
Copy Markdown

Thanks @serhiy-storchaka for the PR, and @terryjreedy for merging it 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14, 3.15.
🐍🍒⛏🤖

@bedevere-app

bedevere-app Bot commented Jul 1, 2026

Copy link
Copy Markdown

GH-152832 is a backport of this pull request to the 3.15 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.15 pre-release feature fixes, bugs and security fixes label Jul 1, 2026
@bedevere-app

bedevere-app Bot commented Jul 1, 2026

Copy link
Copy Markdown

GH-152833 is a backport of this pull request to the 3.14 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.14 bugs and security fixes label Jul 1, 2026
@bedevere-app

bedevere-app Bot commented Jul 1, 2026

Copy link
Copy Markdown

GH-152834 is a backport of this pull request to the 3.13 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.13 bugs and security fixes label Jul 1, 2026
terryjreedy pushed a commit that referenced this pull request Jul 1, 2026
…out restart (GH-152745) (#152834)

gh-82183: Do not restart the busy IDLE shell when running without restart (GH-152745)

"Run... Customized" with "Restart shell" unchecked restarted the shell
anyway when it was busy executing code, killing any pending input.  It now
reports that the shell is executing just once, not twice, and does not run.
(cherry picked from commit be449b1)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
terryjreedy pushed a commit that referenced this pull request Jul 1, 2026
…out restart (GH-152745) (#152833)

gh-82183: Do not restart the busy IDLE shell when running without restart (GH-152745)

"Run... Customized" with "Restart shell" unchecked restarted the shell
anyway when it was busy executing code, killing any pending input.  It now
reports that the shell is executing just once, not twice, and does not run.
(cherry picked from commit be449b1)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
terryjreedy pushed a commit that referenced this pull request Jul 1, 2026
…out restart (GH-152745) (#152832)

gh-82183: Do not restart the busy IDLE shell when running without restart (GH-152745)

"Run... Customized" with "Restart shell" unchecked restarted the shell
anyway when it was busy executing code, killing any pending input.  It now
reports that the shell is executing just once, not twice, and does not run.
(cherry picked from commit be449b1)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
@serhiy-storchaka serhiy-storchaka deleted the gh-82183-run-executing-no-restart branch July 2, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants