Author hidmic
Recipients asvetlov, hidmic, paul.moore, steve.dower, tim.golden, yselivanov, zach.ware
Date 2021-01-12.21:43:53
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
asyncio.ProactorEventLoop uses a socket.socketpair and signal.set_wakeup_fd to wake up a loop that's polling I/O. However it does so with no consideration for file descriptors previously set (i.e. no signal number forwarding). Either by user code or by another instance of asyncio.ProactorEventLoop.

The following snippet is enough for the above to cause the loop to hang forever:

import asyncio
import gc


The first asyncio.ProactorEventLoop instance sets a signal wakeup file descriptor on construction (see The second instances does the same, dropping the file descriptor set by the first one (not good, not necessarily bad). When the garbage collector purges the first instance, signal wakeups are disabled completely (see The loop cannot be interrupted with Ctrl+C anymore (bad).
Date User Action Args
2021-01-12 21:43:53hidmicsetrecipients: + hidmic, paul.moore, tim.golden, asvetlov, zach.ware, yselivanov, steve.dower
2021-01-12 21:43:53hidmicsetmessageid: <>
2021-01-12 21:43:53hidmiclinkissue42913 messages
2021-01-12 21:43:53hidmiccreate