summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorJate Sujjavanich <jatedev@gmail.com>2022-01-21 14:51:42 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-01-25 12:23:15 +0000
commit2bfe7e096d7a2c36322cbb8108de1909b746dc32 (patch)
tree51b6f4eb42d9f58c05740466b79b898a618dd0b3 /bitbake
parente256885889fdea215be100f204277f675f7b5c2d (diff)
downloadpoky-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')
-rw-r--r--bitbake/lib/hashserv/server.py23
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
12import os 12import os
13import signal 13import signal
14import socket 14import socket
15import sys
15import time 16import time
16from . import chunkify, DEFAULT_MAX_CHUNK 17from . 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