Enable ProactorEventLoop on windows for ipykernel#1469
Conversation
|
Hello @NewUserHa, Thanks for your work here! Dear @ianthomas23, Is it possible to get this merged on the next release? It is really important for Windows users, as current solution creates incompatibilities between libraries. Thank you! |
|
@ZupoLlask It is not passing CI, so of course it will not be merged. |
|
@NewUserHa Can you please have a look at this? TY |
|
I have no idea how this occur. this modification works in previous versions of ipython |
37bad2c to
903b031
Compare
|
the |
|
@NewUserHa There were some problems with the CI that I think I have now fixed, so can you rebase this on |
…on windows Removed the _init_asyncio_patch method and its calls.
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
|
PR modified:
current:
|
|
Thank you @NewUserHa! Let's wait and see if @ianthomas23 can help a bit here... 🙏 |
I can, but it will be next week now. |
|
I've taken a look but I am not there is anything I can add here. I notice that most of the eventloops testing is disabled on windows, e.g. ipykernel/tests/test_eventloop.py Lines 86 to 87 in 770afbe so this has evidently been a problematic area in the past. |
|
ipykernel/tests/test_eventloop.py Lines 86 to 87 in 770afbe it should have no problem, since the difference between proactor and selector is add_reader() only mostly.
However, the debugpy can't debug ipyknerel and the test, reporting And the ipykernel's class IOPub starts a thread for tornado's class IOloop, while tornado >6.1 version starts a thread for proactor on windows as well, while pyzmq uses tornado's AsyncIOloop to start a thread also. |
|
@NewUserHa I dug into the Root cause — ipykernel's read side, not debugpyOn a failing run debugpy does hit the breakpoint and write the
(Proven on 3.13 with FixRun the ipykernel service loops (control, IOPub, shell channel, subshells) on a Branch (ready to pull): https://github.com/BoykoNeov/ipykernel/tree/pr-1469 — single commit Result (Windows, local): full One separate, minor thing (not fixed by the above — flagging it)While bisecting I found |
…rect test_attach_debug #1469 batch (this session): - Fix A committed b142cae on pr-1469 (= #1469 head + 1 commit) and pushed to fork; root-cause+fix comment posted on ipython/ipykernel#1469 (offers a PR into patch-2). Standalone PR held: current main is Selector-everywhere, so a PR-to-main is a near-no-op; the #1469 comment is the load-bearing artifact (NewUserHa had asked for exactly this help). - CORRECTION: test_attach_debug was wrongly logged as "NOT loop-related / debugpy-version artifact". Bisected same-box (origin/main Selector PASS vs pr-1469 Proactor FAIL, pure-#1469 too): it IS a second #1469 Proactor regression, but COSMETIC not functional — a stateful repl probe shows namespace/computation work under Proactor; only the first repl evaluate's DAP result field differs (empty Selector / value Proactor). Out of Fix A scope (main stays Proactor). Carried forward (uncommitted from prior batches): - upstream-pr-filed: #1529 stream-send fix + regression test pushed, reply posted, title fixed. - yield-case-depth-inversion-built: minor touch-up. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Thanks for your effort. Your commit changes all The
there is still a test failed, can you help take a look at that |
see #1468