These patches are working well at my end, but I’m still seeing the following error in do_rootfs, when building incrementally in a container. I’m not sure if this is due to timing issues alluded to earlier or something else entirely. I do know for sure that this is not caused by the patches because it happens even without them.
ERROR: core-image-base-1.0-r0 do_rootfs: 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:do_rootfs(d) 0003: File: '/home/pi/docker-meta-raspberrypi/layers/poky/meta/classes/image.bbclass', lineno: 247, function: do_rootfs 0243: progress_reporter.next_stage() 0244: 0245: # generate rootfs 0246: d.setVarFlag('REPRODUCIBLE_TIMESTAMP_ROOTFS', 'export', '1') *** 0247: create_rootfs(d, progress_reporter=progress_reporter, logcatcher=logcatcher) 0248: 0249: progress_reporter.finish() 0250:} 0251:do_rootfs[dirs] = "${TOPDIR}" File: '/home/pi/docker-meta-raspberrypi/layers/poky/meta/lib/oe/rootfs.py', lineno: 375, function: create_rootfs 0371: 0372: img_type = d.getVar('IMAGE_PKGTYPE') 0373: 0374: cls = get_class_for_type(img_type) *** 0375: cls(d, manifest_dir, progress_reporter, logcatcher).create() 0376: os.environ.clear() 0377: os.environ.update(env_bkp) 0378: 0379: File: '/home/pi/docker-meta-raspberrypi/layers/poky/meta/lib/oe/rootfs.py', lineno: 203, function: create 0199: if self.progress_reporter: 0200: self.progress_reporter.next_stage() 0201: 0202: # call the package manager dependent create method *** 0203: self._create() 0204: 0205: sysconfdir = self.image_rootfs + self.d.getVar('sysconfdir') 0206: bb.utils.mkdirhier(sysconfdir) 0207: with open(sysconfdir + "/version", "w+") as ver: File: '/home/pi/docker-meta-raspberrypi/layers/poky/meta/lib/oe/package_manager/rpm/rootfs.py', lineno: 70, function: _create 0066: rpm_pre_process_cmds = self.d.getVar('RPM_PREPROCESS_COMMANDS') 0067: rpm_post_process_cmds = self.d.getVar('RPM_POSTPROCESS_COMMANDS') 0068: 0069: # update PM index files *** 0070: self.pm.write_index() 0071: 0072: execute_pre_post_process(self.d, rpm_pre_process_cmds) 0073: 0074: if self.progress_reporter: File: '/home/pi/docker-meta-raspberrypi/layers/poky/meta/lib/oe/package_manager/rpm/__init__.py', lineno: 141, function: write_index 0137: 0138: def write_index(self): 0139: lockfilename = self.d.getVar('DEPLOY_DIR_RPM') + "/rpm.lock" 0140: lf = bb.utils.lockfile(lockfilename, False) *** 0141: RpmIndexer(self.d, self.rpm_repo_dir).write_index() 0142: bb.utils.unlockfile(lf) 0143: 0144: def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): 0145: from urllib.parse import urlparse File: '/home/pi/docker-meta-raspberrypi/layers/poky/meta/lib/oe/package_manager/rpm/__init__.py', lineno: 11, function: write_index 0007:from oe.package_manager import * 0008: 0009:class RpmIndexer(Indexer): 0010: def write_index(self): *** 0011: self.do_write_index(self.deploy_dir) 0012: 0013: def do_write_index(self, deploy_dir): 0014: if self.d.getVar('PACKAGE_FEED_SIGN') == '1': 0015: signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND')) File: '/home/pi/docker-meta-raspberrypi/layers/poky/meta/lib/oe/package_manager/rpm/__init__.py', lineno: 20, function: do_write_index 0016: else: 0017: signer = None 0018: 0019: createrepo_c = bb.utils.which(os.environ['PATH'], "createrepo_c") *** 0020: result = create_index("%s --update -q %s" % (createrepo_c, deploy_dir)) 0021: if result: 0022: bb.fatal(result) 0023: 0024: # Sign repomd File: '/home/pi/docker-meta-raspberrypi/layers/poky/meta/lib/oe/package_manager/__init__.py', lineno: 26, function: create_index 0022:def create_index(arg): 0023: index_cmd = arg 0024: 0025: bb.note("Executing '%s' ..." % index_cmd) *** 0026: result = subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8") 0027: if result: 0028: bb.note(result) 0029: 0030:def opkg_query(cmd_output): File: '/usr/lib/python3.8/subprocess.py', lineno: 411, function: check_output 0407: # Explicitly passing input=None was previously equivalent to passing an 0408: # empty string. That is maintained here for backwards compatibility. 0409: kwargs['input'] = '' if kwargs.get('universal_newlines', False) else b'' 0410: *** 0411: return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, 0412: **kwargs).stdout 0413: 0414: 0415:class CompletedProcess(object): File: '/usr/lib/python3.8/subprocess.py', lineno: 512, function: run 0508: # We don't call process.wait() as .__exit__ does that for us. 0509: raise 0510: retcode = process.poll() 0511: if check and retcode: *** 0512: raise CalledProcessError(retcode, process.args, 0513: output=stdout, stderr=stderr) 0514: return CompletedProcess(process.args, retcode, stdout, stderr) 0515: 0516: Exception: subprocess.CalledProcessError: Command '/home/pi/docker-meta-raspberrypi/build/tmp/work/raspberrypi0_wifi-poky-linux-gnueabi/core-image-base/1.0-r0/recipe-sysroot-native/usr/bin/createrepo_c --update -q /home/pi/docker-meta-raspberrypi/build/tmp/work/raspberrypi0_wifi-poky-linux-gnueabi/core-image-base/1.0-r0/oe-rootfs-repo' returned non-zero exit status 1. Subprocess output: Critical: Cannot rename /home/pi/docker-meta-raspberrypi/build/tmp/work/raspberrypi0_wifi-poky-linux-gnueabi/core-image-base/1.0-r0/oe-rootfs-repo/.repodata/ -> /home/pi/docker-meta-raspberrypi/build/tmp/work/raspberrypi0_wifi-poky-linux-gnueabi/core-image-base/1.0-r0/oe-rootfs-repo/repodata/: Directory not empty ERROR: Logfile of failure stored in: /home/pi/docker-meta-raspberrypi/build/tmp/work/raspberrypi0_wifi-poky-linux-gnueabi/core-image-base/1.0-r0/temp/log.do_rootfs.165072 ERROR: Task (/home/pi/docker-meta-raspberrypi/layers/poky/meta/recipes-core/images/core-image-base.bb:do_rootfs) failed with exit code '1' > On 21 Apr 2021, at 18:08, Devendra Tewari <devendra.tew...@gmail.com> wrote: > > Separate patches for bitbake and oe-core, as requested > > <0001-use-bb.utils.rename-to-rename-file-or-directory.patch><0001-use-bb.utils.rename-to-rename-file-or-directory.patch> > > I've assumed each will be applied to the master-next branch on top of the > previous patch. > > Thanks, > Devendra > >> On 21 Apr 2021, at 16:21, Richard Purdie >> <richard.pur...@linuxfoundation.org> wrote: >> >> On Wed, 2021-04-21 at 16:15 -0300, Devendra Tewari wrote: >>> That's a neat idea - if the exception handler catches OSError with error >>> number >>> 18 (Invalid cross-device link) in os.rename, it should attempt shutil.move, >>> otherwise it should re-throw the exception with raise. A wrapper function >>> will make it easier to handle other situations as they arise. I'll update >>> the patch. >> >> Sounds good. Could you also please split the patch into two, one for bitbake >> and one for OE-Core since they are two different repositories. >> >> Cheers, >> >> Richard >> >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#151033): https://lists.openembedded.org/g/openembedded-core/message/151033 Mute This Topic: https://lists.openembedded.org/mt/81698791/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-