Hi,

 

Recently I realized that we are having issues with setscene tasks (for docker-moby and cni recipes) where the packages were rebuild even already have their tasks in the sstate mirror and bitbake-diffsigs not showing any difference.
This is the sample of the output that I was getting:
```

WARNING: Logfile for failed setscene task is /<snip>/build/tmp/work/neoversen1-poky-linux/cni/v0.8.0+gitb5ab16f010e822936eb974690ecec38ba69afc01-r0/temp/log.do_package_qa_setscene.3335                                                                                                                                                                                                    

WARNING: Setscene task (/<snip>/layers/meta-virtualization/recipes-networking/cni/cni_git.bb:do_package_qa_setscene) failed with exit code '1' - real task will be run instead                                                                                                                                                                                                              

WARNING: Logfile for failed setscene task is /<snip>/build/tmp/work/neoversen1-poky-linux/cni/v0.8.0+gitb5ab16f010e822936eb974690ecec38ba69afc01-0/temp/log.do_package_write_rpm_setscene.3336                                                                                                                                                                                             

WARNING: Setscene task (/<snip>/layers/meta-virtualization/recipes-networking/cni/cni_git.bb:do_package_write_rpm_setscene) failed with exit code '1' - real task will be run instead                                                                                                                                                                                                       

WARNING: Logfile for failed setscene task is /<snip>/build/tmp/work/neoversen1-poky-linux/cni/v0.8.0+gitb5ab16f010e822936eb974690ecec38ba69afc01-r0/temp/log.do_populate_lic_setscene.3337                                                                                                                                                                                                 

WARNING: Setscene task (/<snip>/layers/meta-virtualization/recipes-networking/cni/cni_git.bb:do_populate_lic_setscene) failed with exit code '1' - real task will be run instead                                                                                                                                                                                                            

WARNING: Logfile for failed setscene task is /<snip>/build/tmp/work/neoversen1-poky-linux/cni/v0.8.0+gitb5ab16f010e822936eb974690ecec38ba69afc01-r0/temp/log.do_populate_sysroot_setscene.3338                                                                                                                                                                                             

WARNING: Setscene task (/<snip>/layers/meta-virtualization/recipes-networking/cni/cni_git.bb:do_populate_sysroot_setscene) failed with exit code '1' - real task will be run instead                                                                                                                                                                                                        

WARNING: Logfile for failed setscene task is /<snip>/build/tmp/work/neoversen1-poky-linux/cni/v0.8.0+gitb5ab16f010e822936eb974690ecec38ba69afc01-r0/temp/log.do_package_qa_setscene.3339                                                                                                                                                                                                  

WARNING: Setscene task (/<snip>/layers/meta-virtualization/recipes-networking/cni/cni_git.bb:do_packagedata_setscene) failed with exit code '1' - real task will be run instead                                                                                                                                                                                                             

WARNING: Logfile for failed setscene task is /<snip>/build/tmp/work/neoversen1-poky-linux/cni/v0.8.0+gitb5ab16f010e822936eb974690ecec38ba69afc01-r0/temp/log.do_package_setscene.3380                                                                                                                                                                                                      

WARNING: Setscene task (/<snip>/layers/meta-virtualization/recipes-networking/cni/cni_git.bb:do_package_setscene) failed with exit code '1' - real task will be run instead                                                                                                                                                                                                                 

WARNING: Logfile for failed setscene task is /<snip>/build/tmp/work/neoversen1-poky-linux/cni/v0.8.0+gitb5ab16f010e822936eb974690ecec38ba69afc01-r0/temp/log.do_deploy_source_date_epoch_setscene.3383                                                                                                                                                                                     

WARNING: Setscene task (/<snip>/layers/meta-virtualization/recipes-networking/cni/cni_git.bb:do_deploy_source_date_epoch_setscene) failed with exit code '1' - real task will be run instead             

```

 

After some debugging I found that the “failed with exit code 1” comes from this line http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/classes/sstate.bbclass#n764:
```

localdata.setVar('SRCPV', d.getVar('SRCPV'))
```


The root cause is because the cni and docker-moby recipes are using named SRC_URI (a.k.a http://...;name=foo), setting the PV with it and were not setting the SRCREV_FORMAT which consequentially not set the SRCPV accordingly.

 

Setting the SRCREV_FORMAT for cni and docker-moby recipes fixed the issue, but I also suspect that the following recipes are potentially having the same issue:

```
$ grep -r PV | grep SRCREV_

recipes-core/runx/runx_git.bb:PV = "v1.0-git${SRCREV_runx}"

recipes-core/runv/runv_git.bb:PV = "0.4.0+git${SRCREV_runv}"

recipes-containers/docker/docker-ce_git.bb:PV = "${DOCKER_VERSION}+git${SRCREV_docker}"

recipes-containers/docker/docker-moby_git.bb:PV = "${DOCKER_VERSION}+git${SRCREV_moby}"

recipes-containers/cri-o/cri-o_git.bb:PV = "1.22.0+git${SRCREV_cri-o}"

recipes-containers/kubernetes/kubernetes_git.bb:PV = "v1.22.2+git${SRCREV_kubernetes}"

recipes-containers/cri-tools/cri-tools_git.bb:PV = "1.21.0+git${SRCREV_cri-tools}"

recipes-containers/crun/crun_git.bb:PV = "0.18+git${SRCREV_crun}"

recipes-networking/cni/cni_git.bb:PV = "v0.8.0+git${SRCREV_cni}"

recipes-devtools/yq/yq_git.bb:PV = "1.13.1+git${SRCREV_yq}"

recipes-devtools/go/go-build_git.bb:PV = "0.1-git${SRCREV_runx}"

```

 

I can send a patch to fix cni and docker-moby but unfortunately I don’t have resources to test the other mentioned recipes.

 

--
Diego Sueiro

Staff Software Developer – Automotive and Industrial Solutions (CE-OSS)