Uh oh!
There was an error while loading. Please reload this page.
gh-114914: Avoid keeping dead StreamWriter alive - #115661
Conversation
In some cases we might cause a StreamWriter to stay alive even when the application has dropped all references to it. This prevents us from doing automatical cleanup, and complaining that the StreamWriter wasn't properly closed. Fortunately, the extra reference was never actually used for anything so we can just drop it.
| addr = srv.sockets[0].getsockname() | ||
| with socket.create_connection(addr): | ||
| # Give the loop some time to notice the connection | ||
| await asyncio.sleep(0.1) |
There was a problem hiding this comment.
Like in the other PR, I believe that one or two sleep(0) should deterministically reach the state you're waiting for?
There was a problem hiding this comment.
Three, actually.
But I'm cautious about this change. Right now, it seems to require three. But someone might change something so that tomorrow this requires four. At which point this test will start reporting "ok" even if everything is broken. :/
There was a problem hiding this comment.
I think adding a future to wait on could give something more reliable in this specific case.
Uh oh!
There was an error while loading. Please reload this page.
gvanrossum
left a comment
There was a problem hiding this comment.
Looks great. Will merge. Thanks for finding and fixing this!
Uh oh!
There was an error while loading. Please reload this page.
In some cases we might cause a StreamWriter to stay alive even when the application has dropped all references to it. This prevents us from doing automatical cleanup, and complaining that the StreamWriter wasn't properly closed. Fortunately, the extra reference was never actually used for anything so we can just drop it.
sobolevn
commented
Feb 29, 2024
Please, see #116112 |
In some cases we might cause a StreamWriter to stay alive even when the application has dropped all references to it. This prevents us from doing automatical cleanup, and complaining that the StreamWriter wasn't properly closed. Fortunately, the extra reference was never actually used for anything so we can just drop it.
In some cases we might cause a StreamWriter to stay alive even when the application has dropped all references to it. This prevents us from doing automatical cleanup, and complaining that the StreamWriter wasn't properly closed. Fortunately, the extra reference was never actually used for anything so we can just drop it.
In some cases we might cause a StreamWriter to stay alive even when the application has dropped all references to it. This prevents us from doing automatical cleanup, and complaining that the StreamWriter wasn't properly closed. Fortunately, the extra reference was never actually used for anything so we can just drop it.
In some cases we might cause a StreamWriter to stay alive even when the application has dropped all references to it. This prevents us from doing automatical cleanup, and complaining that the StreamWriter wasn't properly closed.
Fortunately, the extra reference was never actually used for anything so we can just drop it.