Skip to content

Python 3.12 inspecting a coroutine using getcoroutinestate returns the wrong state. #111058

Closed
@gottadiveintopython

Description

@gottadiveintopython

Bug report

Bug description:

Prior to Python 3.12, we can close a just created coroutine, thus, the following test passes:

from inspect import getcoroutinestate, CORO_CLOSED


async def do_nothing():
    pass


def test_immediate_close():
    coro = do_nothing()
    coro.close()
    assert getcoroutinestate(coro) == CORO_CLOSED

But in Python 3.12, the assertion fails and getcoroutinestate(coro) still is CORO_CREATED after the coro.close(). You can confirm it from https://github.com/gottadiveintopython/py312/actions/runs/6571303025/job/17850194150.

I don't know if this is an intensional change or not, but I just wanted to tell you.

CPython versions tested on:

3.12

Operating systems tested on:

Linux

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.12bugs and security fixes3.13bugs and security fixestype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions