diff options
author | Jate Sujjavanich <jatedev@gmail.com> | 2022-01-21 14:51:42 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-01-25 12:23:15 +0000 |
commit | 2bfe7e096d7a2c36322cbb8108de1909b746dc32 (patch) | |
tree | 51b6f4eb42d9f58c05740466b79b898a618dd0b3 /bitbake/lib/hashserv | |
parent | e256885889fdea215be100f204277f675f7b5c2d (diff) | |
download | poky-2bfe7e096d7a2c36322cbb8108de1909b746dc32.tar.gz |
bitbake: hashserv: specify loop for asyncio in python < 3.6
[YOCTO #14697]
Detect python version 3.5 restoring loop argument where
it is still required. In 3.6 auto loop detection is available.
Bitbake 1.46 is used in dunfell which lists a minimum python version
of 3.5. Omitting this argument leads to a regression and hang during
"Initialising tasks" at 44%.
(Bitbake rev: be6ecc160ac4a8d9715257b9b955363cecc081ea)
Signed-off-by: Jate Sujjavanich <jatedev@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/hashserv')
-rw-r--r-- | bitbake/lib/hashserv/server.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/bitbake/lib/hashserv/server.py b/bitbake/lib/hashserv/server.py index 56f354bd06..f38a22ad92 100644 --- a/bitbake/lib/hashserv/server.py +++ b/bitbake/lib/hashserv/server.py | |||
@@ -12,6 +12,7 @@ import math | |||
12 | import os | 12 | import os |
13 | import signal | 13 | import signal |
14 | import socket | 14 | import socket |
15 | import sys | ||
15 | import time | 16 | import time |
16 | from . import chunkify, DEFAULT_MAX_CHUNK | 17 | from . import chunkify, DEFAULT_MAX_CHUNK |
17 | 18 | ||
@@ -419,9 +420,14 @@ class Server(object): | |||
419 | self._cleanup_socket = None | 420 | self._cleanup_socket = None |
420 | 421 | ||
421 | def start_tcp_server(self, host, port): | 422 | def start_tcp_server(self, host, port): |
422 | self.server = self.loop.run_until_complete( | 423 | if sys.version_info[0] == 3 and sys.version_info[1] < 6: |
423 | asyncio.start_server(self.handle_client, host, port) | 424 | self.server = self.loop.run_until_complete( |
424 | ) | 425 | asyncio.start_server(self.handle_client, host, port, loop=self.loop) |
426 | ) | ||
427 | else: | ||
428 | self.server = self.loop.run_until_complete( | ||
429 | asyncio.start_server(self.handle_client, host, port) | ||
430 | ) | ||
425 | 431 | ||
426 | for s in self.server.sockets: | 432 | for s in self.server.sockets: |
427 | logger.info('Listening on %r' % (s.getsockname(),)) | 433 | logger.info('Listening on %r' % (s.getsockname(),)) |
@@ -444,9 +450,14 @@ class Server(object): | |||
444 | try: | 450 | try: |
445 | # Work around path length limits in AF_UNIX | 451 | # Work around path length limits in AF_UNIX |
446 | os.chdir(os.path.dirname(path)) | 452 | os.chdir(os.path.dirname(path)) |
447 | self.server = self.loop.run_until_complete( | 453 | if sys.version_info[0] == 3 and sys.version_info[1] < 6: |
448 | asyncio.start_unix_server(self.handle_client, os.path.basename(path)) | 454 | self.server = self.loop.run_until_complete( |
449 | ) | 455 | asyncio.start_unix_server(self.handle_client, os.path.basename(path), loop=self.loop) |
456 | ) | ||
457 | else: | ||
458 | self.server = self.loop.run_until_complete( | ||
459 | asyncio.start_unix_server(self.handle_client, os.path.basename(path)) | ||
460 | ) | ||
450 | finally: | 461 | finally: |
451 | os.chdir(cwd) | 462 | os.chdir(cwd) |
452 | 463 | ||