Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-146092: Raise MemoryError on allocation failure in _zoneinfo#146165

Merged
vstinner merged 3 commits intopython:mainfrom
vstinner:zoneinfo_memoroyerror
Mar 20, 2026
Merged

gh-146092: Raise MemoryError on allocation failure in _zoneinfo#146165
vstinner merged 3 commits intopython:mainfrom
vstinner:zoneinfo_memoroyerror

Conversation

@vstinner
Copy link
Member

@vstinnervstinner commentedMar 19, 2026
edited by bedevere-appbot
Loading

Copy link
Member

@StanFromIrelandStanFromIreland left a comment

Choose a reason for hiding this comment

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

@vstinner
Copy link
MemberAuthor

Please also fix:https://github.com/python/cpython/blob/main/Modules/_zoneinfo.c#L1872-L1875

parse_transition_rule() is only used in parse_tz_str() and parse_tz_str() raises ValueError on parse_transition_rule() failure. Other parse_transition_rule() error paths don't set an exception. So I didn't add PyErr_NoMemory() in parse_transition_rule().

@StanFromIreland
Copy link
Member

So I didn't add PyErr_NoMemory() in parse_transition_rule().

Can you please clarify why? TheValueError message may be misleading: "Malformed transition rule in TZ string"
I would update the check to only raise theValueError if no other exception is already set.

@vstinner
Copy link
MemberAuthor

I would update the check to only raise the ValueError if no other exception is already set.

I tried that but I ended up with strange exceptions from a subfunction.

@StanFromIreland
Copy link
Member

Oh yes, I see, I was able to reproduce that. Instead we could do:

         if (parse_transition_rule(&p, transitions[i])) {-            PyErr_Format(PyExc_ValueError,-                         "Malformed transition rule in TZ string: %R",-                         tz_str_obj);+            if (!PyErr_ExceptionMatches(PyExc_MemoryError)) {+                PyErr_Format(PyExc_ValueError,+                             "Malformed transition rule in TZ string: %R",+                             tz_str_obj);+            }             goto error;         }     }

Since{day,calendar}rule_new (the subfunctions) only raiseValueErrors.

@vstinner
Copy link
MemberAuthor

Ok, I updated parse_transition_rule() to raise MemoryError and useif (!PyErr_ExceptionMatches(PyExc_MemoryError)) { in its caller.

@vstinner
Copy link
MemberAuthor

@StanFromIreland: Please review the updated PR.

Copy link
Member

@StanFromIrelandStanFromIreland left a comment

Choose a reason for hiding this comment

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

LGTM, thanks Victor!

@vstinnervstinner merged commit6450b1d intopython:mainMar 20, 2026
48 checks passed
@vstinnervstinner deleted the zoneinfo_memoroyerror branchMarch 20, 2026 16:17
@miss-islington-app
Copy link

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

miss-islington pushed a commit to miss-islington/cpython that referenced this pull requestMar 20, 2026
…pythonGH-146165)(cherry picked from commit6450b1d)Co-authored-by: Victor Stinner <vstinner@python.org>
miss-islington pushed a commit to miss-islington/cpython that referenced this pull requestMar 20, 2026
…pythonGH-146165)(cherry picked from commit6450b1d)Co-authored-by: Victor Stinner <vstinner@python.org>
@bedevere-app
Copy link

GH-146223 is a backport of this pull request to the3.14 branch.

@bedevere-appbedevere-appbot removed the needs backport to 3.14bugs and security fixes labelMar 20, 2026
@vstinner
Copy link
MemberAuthor

Merged, thanks for your reviews!

@bedevere-app
Copy link

GH-146224 is a backport of this pull request to the3.13 branch.

@bedevere-appbedevere-appbot removed the needs backport to 3.13bugs and security fixes labelMar 20, 2026
vstinner added a commit that referenced this pull requestMar 20, 2026
GH-146165) (#146224)gh-146092: Raise MemoryError on allocation failure in _zoneinfo (GH-146165)(cherry picked from commit6450b1d)Co-authored-by: Victor Stinner <vstinner@python.org>
vstinner added a commit that referenced this pull requestMar 20, 2026
GH-146165) (#146223)gh-146092: Raise MemoryError on allocation failure in _zoneinfo (GH-146165)(cherry picked from commit6450b1d)Co-authored-by: Victor Stinner <vstinner@python.org>
CuriousLearner added a commit to CuriousLearner/cpython that referenced this pull requestMar 22, 2026
* upstream/main: (1475 commits)  Docs: replace all `datetime` imports with `import datetime as dt` (python#145640)pythongh-146153: Use `frozendict` in pure python fallback for `curses.has_key` (python#146154)pythongh-138234: clarify returncode behavior for subprocesses created with `shell=True` (python#138536)pythongh-140947: fix contextvars handling for server tasks in asyncio  (python#141158)pythonGH-100108: Add async generators best practices section (python#141885)pythonGH-145667: Merge `GET_ITER` and `GET_YIELD_FROM_ITER` (pythonGH-146120)pythongh-146228: Better fork support in cached FastPath (python#146231)pythongh-146227: Fix wrong type in _Py_atomic_load_uint16 in pyatomic_std.h (pythongh-146229)pythongh-145980: Fix copy/paste mistake in binascii.c (python#146230)pythongh-146092: Raise MemoryError on allocation failure in _zoneinfo (python#146165)pythongh-91279: Note `SOURCE_DATE_EPOCH` support in `ZipFile.writestr()` doc (python#139396)pythongh-146196: Fix Undefined Behavior in _PyUnicodeWriter_WriteASCIIString() (python#146201)pythongh-143930: Reject leading dashes in webbrowser URLspythongh-145916: Soft-deprecate ctypes.util.find_library (pythonGH-145919)pythongh-146205: Check the errno with != 0 in close impls in select module (python#146206)pythongh-146171: Fix nested AttributeError suggestions (python#146188)pythongh-146099: Optimize _GUARD_CODE_VERSION+IP via function version symbols (pythonGH-146101)pythongh-145980: Add support for alternative alphabets in the binascii module (pythonGH-145981)pythongh-145754: Update signature retrieval in unittest.mock to use forwardref annotation format (python#145756)pythongh-145177: Add emscripten run --test, uses test args from config.toml (python#146160)  ...
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@kumaraditya303kumaraditya303kumaraditya303 approved these changes

@StanFromIrelandStanFromIrelandStanFromIreland approved these changes

@pgansslepganssleAwaiting requested review from pgansslepganssle is a code owner

Assignees

No one assigned

Labels

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

3 participants

@vstinner@StanFromIreland@kumaraditya303

[8]ページ先頭

©2009-2026 Movatter.jp