From 5f1116909dcff9588d385d3cb7d3b30fe0c2d5ef 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 00000000000000..2f5e84027ad31b --- /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 4efeadde3d01f3..0de2de0b3db582 100644 --- a/Modules/_interpqueuesmodule.c +++ b/Modules/_interpqueuesmodule.c @@ -1096,6 +1096,7 @@ queue_create(_queues *queues, Py_ssize_t maxsize, } int64_t qid = _queues_add(queues, queue); if (qid < 0) { + queue->alive = 0; _queue_clear(queue); GLOBAL_FREE(queue); }