I have just seen it first-hand for the first time. It happens on Ubuntu 20.04, but not on for example OpenSuse tumbleweed. So something in Ubuntu causes the native python environment to leak into the host python environment. Will investigate.
Alex On Thu, 12 Nov 2020 at 13:59, Peter Bergin <[email protected]> wrote: > Hi Alex, > > On 2020-11-12 12:38, Alexander Kanavin wrote: > > If you can provide exact steps to reproduce (the recipe is not > > available in oe-core), I can take a look. It's been reported plenty of > > times, but always with something not in core and not easily available. > > here are the steps to reproduce with only poky. I hope it can help you > find the root cause: > > $ git clone https://git.yoctoproject.org/git/poky sources/poky > $ . ./sources/poky/oe-init-build-env > $ echo 'MACHINE = "qemuarm64"' >> conf/auto.conf > $ devtool modify u-boot > > And here is the output on my machine: > > Build Configuration: > BB_VERSION = "1.49.0" > BUILD_SYS = "x86_64-linux" > NATIVELSBSTRING = "ubuntu-20.04" > TARGET_SYS = "aarch64-poky-linux" > MACHINE = "qemuarm64" > DISTRO = "poky" > DISTRO_VERSION = "3.2+snapshot-20201112" > TUNE_FEATURES = "aarch64 armv8a crc cortexa57" > TARGET_FPU = "" > meta > meta-poky > meta-yocto-bsp = > "master:e949e76d0f6897ec5d4feaa47afd2b049b32707f" > workspace = "<unknown>:<unknown>" > > Initialising tasks: 100% > |###########################################################| Time: 0:00:00 > Sstate summary: Wanted 20 Found 20 Missed 0 Current 0 (100% match, > 0% complete) > NOTE: Executing Tasks > ERROR: Error executing a python function in exec_python_func() > autogenerated: > > The stack trace of python calls that resulted in this > exception/failure was: > File: 'exec_python_func() autogenerated', lineno: 2, function: > <module> > 0001: > *** 0002:devtool_post_unpack(d) > 0003: > File: > '/work/yocto/devtool-reproduce2/sources/poky/meta/classes/devtool-source.bbclass', > > lineno: 68, function: devtool_post_unpack > 0064:} > 0065: > 0066: > 0067:python devtool_post_unpack() { > *** 0068: import oe.recipeutils > 0069: import shutil > 0070: sys.path.insert(0, os.path.join(d.getVar('COREBASE'), > 'scripts', 'lib')) > 0071: import scriptutils > 0072: from devtool import setup_git_repo > File: > '/work/yocto/devtool-reproduce2/sources/poky/meta/lib/oe/recipeutils.py', > lineno: 21, function: <module> > 0017:import shutil > 0018:import re > 0019:import fnmatch > 0020:import glob > *** 0021:import bb.tinfoil > 0022: > 0023:from collections import OrderedDict, defaultdict > 0024:from bb.utils import vercmp_string > 0025: > File: > '/work/yocto/devtool-reproduce2/sources/poky/bitbake/lib/bb/tinfoil.py', > lineno: 19, function: <module> > 0015:from collections import OrderedDict, defaultdict > 0016:from functools import partial > 0017: > 0018:import bb.cache > *** 0019:import bb.cooker > 0020:import bb.providers > 0021:import bb.taskdata > 0022:import bb.utils > 0023:import bb.command > File: > '/work/yocto/devtool-reproduce2/sources/poky/bitbake/lib/bb/cooker.py', > lineno: 25, function: <module> > 0021:import bb, bb.exceptions, bb.command > 0022:from bb import utils, data, parse, event, cache, > providers, taskdata, runqueue, build > 0023:import queue > 0024:import signal > *** 0025:import prserv.serv > 0026:import pyinotify > 0027:import json > 0028:import pickle > 0029:import codecs > File: > '/work/yocto/devtool-reproduce2/sources/poky/bitbake/lib/prserv/serv.py', > lineno: 7, function: <module> > 0003:# > 0004: > 0005:import os,sys,logging > 0006:import signal, time > *** 0007:from xmlrpc.server import SimpleXMLRPCServer, > SimpleXMLRPCRequestHandler > 0008:import threading > 0009:import queue > 0010:import socket > 0011:import io > File: '/usr/lib/python3.8/xmlrpc/server.py', lineno: 117, function: > <module> > 0113:import socketserver > 0114:import sys > 0115:import os > 0116:import re > *** 0117:import pydoc > 0118:import traceback > 0119:try: > 0120: import fcntl > 0121:except ImportError: > File: '/usr/lib/python3.8/pydoc.py', lineno: 370, function: <module> > 0366: return module > 0367: > 0368:# ---------------------------------------------------- > formatter base class > 0369: > *** 0370:class Doc: > 0371: > 0372: PYTHONDOCS = os.environ.get("PYTHONDOCS", > 0373: "https://docs.python.org/%d.%d/library" > 0374: % sys.version_info[:2]) > File: '/usr/lib/python3.8/pydoc.py', lineno: 400, function: Doc > 0396: raise TypeError(message) > 0397: > 0398: docmodule = docclass = docroutine = docother = > docproperty = docdata = fail > 0399: > *** 0400: def getdocloc(self, object, > basedir=sysconfig.get_path('stdlib')): > 0401: """Return the location of module docs or None""" > 0402: > 0403: try: > 0404: file = inspect.getabsfile(object) > File: '/usr/lib/python3.8/sysconfig.py', lineno: 512, function: > get_path > 0508: """Return a path corresponding to the scheme. > 0509: > 0510: ``scheme`` is the install scheme name. > 0511: """ > *** 0512: return get_paths(scheme, vars, expand)[name] > 0513: > 0514: > 0515:def get_config_vars(*args): > 0516: """With no arguments, return a dictionary of all > configuration > File: '/usr/lib/python3.8/sysconfig.py', lineno: 502, function: > get_paths > 0498: ``scheme`` is the install scheme name. If not > provided, it will > 0499: return the default scheme for the current platform. > 0500: """ > 0501: if expand: > *** 0502: return _expand_vars(scheme, vars) > 0503: else: > 0504: return _INSTALL_SCHEMES[scheme] > 0505: > 0506: > File: '/usr/lib/python3.8/sysconfig.py', lineno: 172, function: > _expand_vars > 0168:def _expand_vars(scheme, vars): > 0169: res = {} > 0170: if vars is None: > 0171: vars = {} > *** 0172: _extend_dict(vars, get_config_vars()) > 0173: > 0174: for key, value in _INSTALL_SCHEMES[scheme].items(): > 0175: if os.name in ('posix', 'nt'): > 0176: value = os.path.expanduser(value) > File: '/usr/lib/python3.8/sysconfig.py', lineno: 550, function: > get_config_vars > 0546: > 0547: if os.name == 'nt': > 0548: _init_non_posix(_CONFIG_VARS) > 0549: if os.name == 'posix': > *** 0550: _init_posix(_CONFIG_VARS) > 0551: # For backward compatibility, see issue19555 > 0552: SO = _CONFIG_VARS.get('EXT_SUFFIX') > 0553: if SO is not None: > 0554: _CONFIG_VARS['SO'] = SO > File: '/usr/lib/python3.8/sysconfig.py', lineno: 421, function: > _init_posix > 0417:def _init_posix(vars): > 0418: """Initialize the module as appropriate for POSIX > systems.""" > 0419: # _sysconfigdata is generated at build time, see > _generate_posix_vars() > 0420: name = _get_sysconfigdata_name() > *** 0421: _temp = __import__(name, globals(), locals(), > ['build_time_vars'], 0) > 0422: build_time_vars = _temp.build_time_vars > 0423: vars.update(build_time_vars) > 0424: > 0425:def _init_non_posix(vars): > Exception: ModuleNotFoundError: No module named '_sysconfigdata' > > > Thanks, > /Peter > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#144513): https://lists.openembedded.org/g/openembedded-core/message/144513 Mute This Topic: https://lists.openembedded.org/mt/78203937/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
