GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GH-89727: Partially fix `shutil.rmtree()` recursion error on deep trees by barneygale · Pull Request #119634 · python/cpython

Conversation

@barneygale

@barneygale barneygale commented May 27, 2024 •
edited by bedevere-app Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Make shutil._rmtree_unsafe() call os.walk(), which is implemented without recursion.

shutil._rmtree_safe_fd() is not affected and can still raise a recursion error.

  • Issue: Change shutil.rmtree and os.walk to support very deep hierarchies #89727

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@barneygale
pythonGH-89727: Partially fix shutil.rmtree() recursion error on de…
55adfeb
…ep trees

Make `shutil._rmtree_unsafe()` call `os.walk()`, which is implemented
without recursion.

`shutil._rmtree_safe_fd()` is not affected and can still raise a recursion
error.
@barneygale barneygale added needs backport to 3.12 only security fixes needs backport to 3.13 only security fixes labels May 27, 2024
@bedevere-app bedevere-app Bot added the awaiting core review label May 27, 2024
@bedevere-app bedevere-app Bot mentioned this pull request May 27, 2024
Change shutil.rmtree and os.walk to support very deep hierarchies #89727
Open
@barneygale
Simplify diff
e5c8ceb
@barneygale
barneygale requested review from JelleZijlstra and carljm May 27, 2024 20:49
@barneygale barneygale added the skip news label May 27, 2024
@barneygale

barneygale commented May 27, 2024

Copy link
Copy Markdown
Contributor Author

I've added the 'skip news' label because this is only a partial fix. Hopefully that's right!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

JelleZijlstra
JelleZijlstra reviewed May 29, 2024
View reviewed changes

@JelleZijlstra JelleZijlstra left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. I think this should have a NEWS entry since it does change a user-visible behavior.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

barneygale reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
Comment thread Lib/shutil.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Lib/shutil.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

barneygale and others added 4 commits May 29, 2024 20:35
@barneygale @JelleZijlstra
Update Lib/shutil.py
96293a5
Co-authored-by: Jelle Zijlstra <[email protected]>
@barneygale
Undo premature optimisation
3b1b15e
@barneygale
Add NEWS
4fe3075
@barneygale
Merge branch 'main' into pythongh-89727-use-os-walk
857bcfa
@barneygale barneygale removed the skip news label May 29, 2024
JelleZijlstra
JelleZijlstra approved these changes May 29, 2024
View reviewed changes
@bedevere-app bedevere-app Bot added awaiting merge and removed awaiting core review labels May 29, 2024
JelleZijlstra
JelleZijlstra reviewed May 29, 2024
View reviewed changes
Comment thread Misc/NEWS.d/next/Library/2024-05-29-20-42-17.gh-issue-89727.5lPTTW.rst Resolved

Uh oh!

There was an error while loading. Please reload this page.

@barneygale @JelleZijlstra
Update Misc/NEWS.d/next/Library/2024-05-29-20-42-17.gh-issue-89727.5l…
27ee6f0
…PTTW.rst

Co-authored-by: Jelle Zijlstra <[email protected]>
@barneygale

barneygale commented May 29, 2024

Copy link
Copy Markdown
Contributor Author

Thank you Jelle!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@barneygale
barneygale enabled auto-merge (squash) May 29, 2024 19:49
@barneygale
barneygale merged commit a150679 into python:main May 29, 2024
@miss-islington-app

miss-islington-app Bot commented May 29, 2024

Copy link
Copy Markdown

Thanks @barneygale for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12, 3.13.
🐍🍒⛏🤖

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the awaiting merge label May 29, 2024
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request May 29, 2024
@barneygale @JelleZijlstra @miss-islington
pythonGH-89727: Partially fix shutil.rmtree() recursion error on de…
5f9cfd7
…ep trees (pythonGH-119634)

Make `shutil._rmtree_unsafe()` call `os.walk()`, which is implemented
without recursion.

`shutil._rmtree_safe_fd()` is not affected and can still raise a recursion
error.

(cherry picked from commit a150679)

Co-authored-by: Barney Gale <[email protected]>
Co-authored-by: Jelle Zijlstra <[email protected]>
@miss-islington-app

miss-islington-app Bot commented May 29, 2024

Copy link
Copy Markdown

Sorry, @barneygale, I could not cleanly backport this to 3.12 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker a150679f90c6e3f017bd75cac3b8f727063cc4aa 3.12
barneygale reacted with eyes emoji
All reactions
  • 👀 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@miss-islington-app miss-islington-app Bot assigned barneygale May 29, 2024
@bedevere-app

bedevere-app Bot commented May 29, 2024

Copy link
Copy Markdown

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the needs backport to 3.13 only security fixes label May 29, 2024
barneygale added a commit to barneygale/cpython that referenced this pull request May 29, 2024
@barneygale @JelleZijlstra
pythonGH-89727: Partially fix shutil.rmtree() recursion error on de…
3b03217
…ep trees (python#119634)

Make `shutil._rmtree_unsafe()` call `os.walk()`, which is implemented
without recursion.

`shutil._rmtree_safe_fd()` is not affected and can still raise a recursion
error.

Co-authored-by: Jelle Zijlstra <[email protected]>
(cherry picked from commit a150679)
barneygale added a commit to barneygale/cpython that referenced this pull request May 29, 2024
@barneygale
[3.12] pythonGH-89727: Partially fix shutil.rmtree() recursion erro…
4ec8d54
…r on deep trees (pythonGH-119634)

Make `shutil._rmtree_unsafe()` call `os.walk()`, which is implemented
without recursion.

`shutil._rmtree_safe_fd()` is not affected and can still raise a recursion
error.

Co-authored-by: Jelle Zijlstra <[email protected]>.
(cherry picked from commit a150679)

Co-authored-by: Barney Gale <[email protected]>
@bedevere-app

bedevere-app Bot commented May 29, 2024

Copy link
Copy Markdown

GH-119749 is a backport of this pull request to the 3.12 branch.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot removed the needs backport to 3.12 only security fixes label May 29, 2024
barneygale added a commit that referenced this pull request May 29, 2024
@miss-islington @barneygale @JelleZijlstra
[3.13] GH-89727: Partially fix shutil.rmtree() recursion error on d…
061abf8
…eep trees (GH-119634) (#119748)

GH-89727: Partially fix `shutil.rmtree()` recursion error on deep trees (GH-119634)

Make `shutil._rmtree_unsafe()` call `os.walk()`, which is implemented
without recursion.

`shutil._rmtree_safe_fd()` is not affected and can still raise a recursion
error.

(cherry picked from commit a150679)

Co-authored-by: Barney Gale <[email protected]>
Co-authored-by: Jelle Zijlstra <[email protected]>
barneygale added a commit that referenced this pull request May 29, 2024
@barneygale @JelleZijlstra
[3.12] GH-89727: Partially fix shutil.rmtree() recursion error on d…
45587df
…eep trees (GH-119634) (#119749)

* GH-89727: Partially fix `shutil.rmtree()` recursion error on deep trees (#119634)

Make `shutil._rmtree_unsafe()` call `os.walk()`, which is implemented
without recursion.

`shutil._rmtree_safe_fd()` is not affected and can still raise a recursion
error.

Co-authored-by: Jelle Zijlstra <[email protected]>
(cherry picked from commit a150679)
@barneygale barneygale mentioned this pull request May 30, 2024
GH-89727: Fix shutil.rmtree() recursion error on deep trees #119808
Merged
estyxx pushed a commit to estyxx/cpython that referenced this pull request Jul 17, 2024
@barneygale @JelleZijlstra @estyxx
pythonGH-89727: Partially fix shutil.rmtree() recursion error on de…
459d4f3
…ep trees (python#119634)

Make `shutil._rmtree_unsafe()` call `os.walk()`, which is implemented
without recursion.

`shutil._rmtree_safe_fd()` is not affected and can still raise a recursion
error.

Co-authored-by: Jelle Zijlstra <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@JelleZijlstra JelleZijlstra JelleZijlstra approved these changes
@carljm carljm Awaiting requested review from carljm

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@barneygale barneygale

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@barneygale @JelleZijlstra
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.