On 2023-05-31 10:04, Bruce Ashfield wrote:
On Wed, May 31, 2023 at 9:23 AM Richard Purdie
<richard.pur...@linuxfoundation.org> wrote:
Hi Trevor,

I thought this issue might be something you might be able to spot the
solution with quickly.

I had a failing python3-iniconfig build in a TMPDIR I've reused
heavily:
FWIW. I see this in about 6 or 7 python recipes in my extremely
heavily reused tmpdir.

After I came back from vacation, I iterated through a -c clean on the
python packages, and they always built the second time through.

Do you recall which those are, and if it's the same ones each time it happens? I'm wondering if it may be an issue with some recipes.

I haven't been able to recreate the issue yet, but my tmpdir is not very old. When I attempt the suggested reproducer (creating the empty directories and rerunning do_compile), it is successful. I'll keep poking at it.

Trevor


Bruce

ERROR: python3-iniconfig-2.0.0-r0 do_compile: 
ExecutionError('/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/temp/run.do_compile.2391637',
 1, None, None)
ERROR: Logfile of failure stored in: 
/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/temp/log.do_compile.2391637
Log data follows:
| DEBUG: Executing shell function do_compile
| * Getting build dependencies for wheel...
|
| Traceback (most recent call last):
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__main__.py",
 line 375, in main
|     built = build_call(
|             ^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__main__.py",
 line 208, in build_package
|     out = _build(isolation, builder, outdir, distribution, config_settings, 
skip_dependency_check)
|           
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__main__.py",
 line 147, in _build
|     return _build_in_current_env(builder, outdir, distribution, 
config_settings, skip_dependency_check)
|            
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__main__.py",
 line 127, in _build_in_current_env
|     missing = builder.check_dependencies(distribution)
|               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__init__.py",
 line 369, in check_dependencies
|     return {u for d in dependencies for u in check_dependency(d)}
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__init__.py",
 line 369, in <setcomp>
|     return {u for d in dependencies for u in check_dependency(d)}
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__init__.py",
 line 185, in check_dependency
|     yield from check_dependency(other_req_string, ancestral_req_strings + 
(normalised_req_string,), req.extras)
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/build/__init__.py",
 line 179, in check_dependency
|     if req.specifier and not req.specifier.contains(dist.version, 
prereleases=True):
|                              
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/packaging/specifiers.py",
 line 905, in contains
|     item = Version(item)
|            ^^^^^^^^^^^^^
|   File 
"/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages/packaging/version.py",
 line 196, in __init__
|     match = self._regex.search(version)
|             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
| TypeError: expected string or bytes-like object, got 'NoneType'
|
| ERROR expected string or bytes-like object, got 'NoneType'
| WARNING: exit code 1 from a shell command.
ERROR: Task 
(/media/build/poky/meta/recipes-devtools/python/python3-iniconfig_2.0.0.bb:do_compile)
 failed with exit code '1'

I wondered why and I isolated it down to this:

richard@jet:/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages$
 find -type d -empty
./hatchling-1.13.0.dist-info/licenses
./pathspec-0.11.0.dist-info
./importlib_metadata-6.0.0.dist-info
./setuptools-67.4.0.dist-info
./wheel-0.38.4.dist-info
./installer-0.6.0.dist-info
./setuptools-67.6.0.dist-info
./packaging-23.0.dist-info
richard@jet:/media/build/poky/build/tmp/work/core2-64-poky-linux/python3-iniconfig/2.0.0-r0/recipe-sysroot-native/usr/lib/python3.11/site-packages$
 find -type d -empty -delete

After which the compile succeeds. These empty dist-info directories
really upset the build. They're left behind by the sstate cleanup code
from when I have older versions of these python modules in play since
the sstate code can race over directory removal. Is there a way to make
python ignore them? Otherwise should we remove them somewhere?

I suspect you can recreate by adding these empty directories and
running a -c compile -f. I've seen it with plenty of other python
modules too.

Cheers,

Richard






-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#182012): 
https://lists.openembedded.org/g/openembedded-core/message/182012
Mute This Topic: https://lists.openembedded.org/mt/99241972/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to