From 3166ce0e8fe63754c589214d06cbb331c5f0a218 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Thu, 25 Jun 2026 10:04:02 +0300 Subject: [PATCH] gh-151763: Fix crash in `_interpqueues.create` on `MemoryError` (GH-152131) (cherry picked from commit a6c2d4ae3bd744610e1a8b70396effdabca1593d) Co-authored-by: sobolevn --- .../next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst | 2 ++ Modules/_interpqueuesmodule.c | 1 + 2 files changed, 3 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst diff --git a/Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst b/Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst new file mode 100644 index 000000000000000..2f5e84027ad31bb --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst @@ -0,0 +1,2 @@ +Fix crash in :func:`!_interpqueues.create` whe :exc:`MemoryError` +happens on queue creation. diff --git a/Modules/_interpqueuesmodule.c b/Modules/_interpqueuesmodule.c index 7a89e2f13a1c72a..1bab83519546c52 100644 --- a/Modules/_interpqueuesmodule.c +++ b/Modules/_interpqueuesmodule.c @@ -1108,6 +1108,7 @@ queue_create(_queues *queues, Py_ssize_t maxsize, int fmt, int unboundop) } int64_t qid = _queues_add(queues, queue); if (qid < 0) { + queue->alive = 0; _queue_clear(queue); GLOBAL_FREE(queue); }