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

>
> Cheers,
>
> Richard
>
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#192955): 
https://lists.openembedded.org/g/openembedded-core/message/192955
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