[yocto] [pseudo] Pseudo 1.8+ xattr sqlite corruption

Jack.Fewx at dell.com Jack.Fewx at dell.com
Wed Aug 22 07:54:02 PDT 2018


Dell - Internal Use - Confidential  

> Dell - Internal Use - Confidential
> 
> > 2018-08-20 20:45 GMT+02:00  <Jack.Fewx at dell.com>:
> > > We are encountering a build problem after migrating to Poky 2.3 
> > > and Pseudo 1.8.1, and need help to resolve this.
> > > It is hampering our development efforts, forcing us to rebuild 
> > > images frequently.
> > > 
> > > Background:
> > > Our build applies SELinux file contexts, during build time since 
> > > our rootfs is read-only In Poky 2.0, using Pseudo 1.6.2 this works 
> > > perfectly 100% of the time
> > Pseudo is not an integral part of poky, and comes via a recipe build 
> > like anything else. You can play with that recipe, and establish 
> > which commit in pseudo's upstream git repo broke this.
> > Also 2.3 is better than 2.0 but still kind of old. Do try this on 
> > the latest yocto release, or even on the master branch.
> > Alex
> 
> I should add that the same problem exists in Poky 2.5, and top of 
> Pseudo git repo.  The problem was introduced, best I can tell, was 
> when the entire Pseudo database structure was rewritten.  As a result 
> of the major overhaul messing with patches is problematic to 
> impossible.
> 
> If Pseudo is not a part of Poky proper, yet is a completely integral 
> part of the build, is there a better place to field this question?
> 

> Out of curiosity, what is the failure mode here? Are there any indications of a failed build in the output, or do you have to look at the sqlite database to tell something is wrong?

> Jack
> --
> Joshua Watt <JPEWhacker at gmail.com>

So failure mode is the target filesystem is devoid of SELinux file contexts, all files are unlabeled_t, which pretty much breaks everything in enforcing mode.  So whatever the corruption cause/effect in the Psuedo database, the end result is when Mksquashfs runs it can't get labels for the files.

There is no obvious differences in the pseudo.log files between good and bad runs, so it's nothing Pseudo is screaming about.

I just found the Pseudo debug option flags, and how to insert them using FAKEROOTENV += "PSEUDO_DEBUG=Dx", so I'm running builds trying to get good and bad ones with the debug logs.

Jack


More information about the yocto mailing list