Bug 9208

Summary: createrepo fails to correctly update the repodata, image generation then fails
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Richard Purdie <richard.purdie>
Component: deploymentAssignee: Unassigned <unassigned>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: Medium CC: randy.macleod
Version: 2.1   
Target Milestone: Future   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Richard Purdie 2016-03-03 17:02:55 UTC
https://autobuilder.yoctoproject.org/main/builders/nightly-x86-64/builds/694/steps/BuildImages_1/logs/stdio

Multiple images failed with errors like:

  xf86-video-intel-dev                                                          
  error: Failed to download packages:
error:     /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64/build/build/tmp/deploy/rpm/core2_64/xinit-dev-1.3.4-r0.core2_64.rpm: Invalid SHA (expected 6070ebb96a5469886907361e2f03ffb4f42abf8f, got 3507e75977c85ca9f6c69fa95c6511a04ed1aa22)
xf86-video-vesa-dev                                                           
  xf86dgaproto-dev                                                              
  xf86driproto-dev         

$ cat tmp/work/core2-64-poky-linux/xinit/1_1.3.4-r0/temp/log.task_order

do_populate_lic_setscene (27770): log.do_populate_lic_setscene.27770
do_fetch (26129): log.do_fetch.26129
do_unpack (27109): log.do_unpack.27109
do_patch (27833): log.do_patch.27833
do_configure (29579): log.do_configure.29579
do_compile (4379): log.do_compile.4379
do_install (6766): log.do_install.6766
do_package (10386): log.do_package.10386
do_packagedata (14581): log.do_packagedata.14581
do_package_write_rpm (8375): log.do_package_write_rpm.8375
do_package_write_ipk (14249): log.do_package_write_ipk.14249
do_package_write_deb (14303): log.do_package_write_deb.14303
do_package_qa (3611): log.do_package_qa.3611
do_populate_sysroot (3695): log.do_populate_sysroot.3695
do_populate_sysroot_setscene (11305): log.do_populate_sysroot_setscene.11305
do_package_qa_setscene (11467): log.do_package_qa_setscene.11467
do_package_write_rpm_setscene (11779): log.do_package_write_rpm_setscene.11779
do_package_write_deb_setscene (13235): log.do_package_write_deb_setscene.13235
do_package_write_ipk_setscene (13793): log.do_package_write_ipk_setscene.13793
do_packagedata_setscene (17843): log.do_packagedata_setscene.17843

What happened here was that MACHINE=qemux86-64 bitbake <image> then MACHINE=genericx86-64 bitbake <image> which meant construction of a new sysroot and hence new packages were extracted.

The xinit-dev package in tmp/deploy/rpm/core2_64 does have the checksum "3507e75977c85ca9f6c69fa95c6511a04ed1aa22" which is the checksum of the package that was installed in do_package_write_rpm_setscene. This is most likely from a different sstate artefact that the original do_package_write_rpm generated.

I instrumented /tmp/sysroots/x86_64-linux/usr/share/createrepo/readMetadata.py and the filesize and mtime of the package in the deploy directory match those listed in repodata, hence its not updating its cache.

It seems unlikely this package would be generated at *exactly* the same second on two different ABs, resulting in two sstate artefacts with the same size and mtime but different checksums. Right now this is the only way I could explain this error though.

createrepo would o
Comment 1 Richard Purdie 2017-06-20 11:02:36 UTC
We've switched to rpm4 now and this was with a different version of createrepo so its not longer valid.