On Wed, 2023-12-27 at 11:30 -0700, Joshua Watt wrote:
> On Wed, Dec 27, 2023 at 4:28 AM Richard Purdie
> <[email protected]> wrote:
> > 
> > I wanted to write down some thoughts on this which I have all the
> > pieces handy.
> > 
> > We saw a nightly layer check fail for meta-openembedded:
> > 
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/121/builds/1798/steps/21/logs/stdio
> > 
> > INFO: ======================================================================
> > INFO: ERROR: test_show_environment (common.CommonCheckLayer)
> > INFO: ----------------------------------------------------------------------
> > INFO: Traceback (most recent call last):
> >   File 
> > "/home/pokybuild/yocto-worker/check-layer-nightly/build/scripts/lib/checklayer/cases/common.py",
> >  line 48, in test_show_environment
> >     check_command('Layer %s failed to show environment.' % 
> > self.tc.layer['name'],
> >   File 
> > "/home/pokybuild/yocto-worker/check-layer-nightly/build/scripts/lib/checklayer/__init__.py",
> >  line 287, in check_command
> >     raise RuntimeError(msg)
> > RuntimeError: Layer meta-gnome failed to show environment.
> > Command: bitbake -e
> > Output:
> > libgcc_s.so.1 must be installed for pthread_cancel to work
> > Aborted (core dumped)
> > 
> > which unsurprisingly is on ubuntn 20.04. We've also seen issues like
> > this on Debian 11.
> > 
> > I noticed:
> > 
> > https://stackoverflow.com/questions/64797838/libgcc-s-so-1-must-be-installed-for-pthread-cancel-to-work
> > 
> > and:
> > 
> > https://bugs.ams1.psf.io/issue42888
> > 
> > which led me to try:
> > ubuntu2004-ty-1:~$ wget 
> > https://bugs.ams1.psf.io/file50112/pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ echo $?
> > 0
> > rpurdie@ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > libgcc_s.so.1 must be installed for pthread_cancel to work
> > Aborted (core dumped)
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > libgcc_s.so.1 must be installed for pthread_cancel to work
> > Aborted (core dumped)
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > libgcc_s.so.1 must be installed for pthread_cancel to work
> > Aborted (core dumped)
> > 
> > (1 in 4 success)
> > 
> > Then adding to the script:
> > import ctypes
> > libgcc_s = ctypes.CDLL('libgcc_s.so.1')
> > 
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 pthread_cancel_bug.py
> > ubuntu2004-ty-1:~$ python3 --version
> > Python 3.8.10
> > 
> > I also tried this on debian 11:
> > 
> > debian11-ty-1:~$ python3 pthread_cancel_bug.py
> > libgcc_s.so.1 must be installed for pthread_cancel to work
> > Aborted
> > 
> > debian11-ty-1:~$ python3 --version
> > Python 3.9.2
> > 
> > where the above workaround using ctypes also seems to work.
> > 
> > I'm therefore tempted for python 3.8/3.9 to preload libgcc_s as a
> > workaround for this...
> 
> Seems reasonable to me, as long as we can restrict it to a specific
> version range of python and have a nice comment explaining why

Patch tested, sent and I've applied it to older bitbake branches too in
the hope that it helps some of Steve's autobuilder failures too.

Once we get to 3.10 as a minimum version we can drop it.

Cheers,

Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193070): 
https://lists.openembedded.org/g/openembedded-core/message/193070
Mute This Topic: https://lists.openembedded.org/mt/103388962/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to