Hello Michael, I tested on an Ubuntu 20.04 docker container, and the code worked in that environment. It has kernel 5.10.25-linuxkit which is different from the default kernel in Ubuntu 20.04 which is 5.4. I chose to keep the loop argument for versions 3.6 and below because python first deprecated the loop argument in 3.7. Perhaps it's safer to keep specifying loop for 3.9 and below. There is one other report of the bug but it seems to be the result of the fix for 3.10 in October. So it was probably working for python 3.9 and below. Could you try the fix with the minor number changed to 10? if sys.version_info[0] == 3 and sys.version_info[1] < 10: If that works, I will update the patch. I am not familiar with the asyncio library and its system calls, so I'm hoping this works. Ashish: You reported behavior like this bug. Do you have more information on your Python and build environment? Thanks, - Jate S. On Thu, Jan 13, 2022 at 11:53 AM Michael Opdenacker < michael.opdenacker@bootlin.com> wrote: > Hi Jate > > On 1/13/22 2:05 AM, Jate Sujjavanich wrote: > > Detect python version 3.6 and below restoring loop argument where > > it is still required. In 3.7 auto loop detection is available. > > > > Bitbake 1.46 is used in dunfell which requires a minimum python version > > of 3.5. Omitting this argument leads to a regression and hang during > > "Initialising tasks" at 44%. > > > Thanks for the patch! > Weirdly, though, my host (Ubuntu 20.04) has Python 3.8 and still > regularly has the "Initializing task" step stuck at 44% for a several > minutes. > > Here's what strace says while this happens: > futex(0x277c200, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, > {tv_sec=1642092729, tv_nsec=110486000}, FUTEX_BITSET_MATCH_ANY) = -1 > ETIMEDOUT (Connection timed out) > futex(0x277c200, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, > {tv_sec=1642092729, tv_nsec=360665000}, FUTEX_BITSET_MATCH_ANY) = -1 > ETIMEDOUT (Connection timed out) > futex(0x277c200, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, > {tv_sec=1642092729, tv_nsec=610862000}, FUTEX_BITSET_MATCH_ANY) = -1 > ETIMEDOUT (Connection timed out) > futex(0x277c200, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, > {tv_sec=1642092729, tv_nsec=861086000}, FUTEX_BITSET_MATCH_ANY) = -1 > ETIMEDOUT (Connection timed out) > futex(0x277c200, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, > {tv_sec=1642092730, tv_nsec=111295000}, FUTEX_BITSET_MATCH_ANY) = -1 > ETIMEDOUT (Connection timed out) > ... > > Any clue why this can happen? > > Thanks > Michael. > > -- > Michael Opdenacker, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com > >