Tribler: "Too many file descriptors" error on Windows

Created on 3 Jul 2020  路  8Comments  路  Source: Tribler/tribler

7.5.1 on Windows, from reporter:

Traceback (most recent call last):
File "src\tribler-gui\tribler_gui\core_manager.py", line 64, in on_core_finished
RuntimeError: The Tribler core has unexpectedly finished with exit code -1 and status: 0!

Traceback (most recent call last):
File "src\run_tribler.py", line 115, in <module>
File "src\run_tribler.py", line 99, in start_tribler_core
File "lib\asyncio\base_events.py", line 534, in run_forever
File "lib\asyncio\base_events.py", line 1735, in _run_once
File "lib\selectors.py", line 323, in select
File "lib\selectors.py", line 314, in _select
ValueError: too many file descriptors in select()

The answer is instantly available on SO:

By default Windows can use only 64 sockets in asyncio loop. This is a limitation of underlying select() API call.
To increase the limit please use ProactorEventLoop.

bug

Most helpful comment

There are always surprises when touching the builder infrastructure 馃巵. With Tribler, it's always Christmas!

I'll try to spend some time on the upgrade to Python 3.8.

All 8 comments

Using the ProactorEventLoop event loop will break Tribler on Python 3.7 and lower, as it doesn't support create_datagram_endpoint. In Python 3.8 that limitation is fixed, and ProactorEventLoop is the default on Windows.

Well, this means we have to move our infrastructure to python 3.8

Our macOS builds already include Python 3.8. Our 64-bit Windows build is still Python 3.7(.5?) and I'm not sure about our 32-bit build. If we also upgrade our Linux builder, moving to Python 3.8 is more than doable. Do we want this for the 7.5.2 release?

Do we want this for the 7.5.2 release?

Yes, that's the perfect opportunity to do this. Everything else is stable, so no surprises (except for 3.8-specific :gift: of course).

There are always surprises when touching the builder infrastructure 馃巵. With Tribler, it's always Christmas!

I'll try to spend some time on the upgrade to Python 3.8.

shamelessly advertising:

https://github.com/hbiyik/triblerd-buildsys

python 3.8.1 ready :)

@hbiyik , we would like to streamline our build system, but definitely not for a minor release ))

Fixed automatically by using Python 3.8 on Windows

Was this page helpful?
0 / 5 - 0 ratings

Related issues

hbiyik picture hbiyik  路  5Comments

N0rbert picture N0rbert  路  3Comments

ichorid picture ichorid  路  11Comments

devos50 picture devos50  路  7Comments

devos50 picture devos50  路  4Comments