Hi -

> [...]
> Every time you rebuild some packages, the package files are rebuilt with the
> new contents. When this happens, the new package files will have a newer
> mtime, but the files inside the archive (elf, source) will have the same
> fixed timestamp as before. 

Do I understand this part correctly: that yocto package-file
filestamps are normal (reflect their actual unique-ish creation time),
but the timestamps of constituent files are synthetic (and may be
backdated / duplicate)?

> And when debuginfod will traverse them (without the patch I
> propose), it will not update the database because it will find
> consider that the files inside the packages were not modified. [...]

That's not how debuginfod works though.  It decides to reanalyze
archives based on the archive mtime, not the constituent file mtime.
Your patch only affects the "_r_seekable.mtime" column, which I
believe is not used for any sort of caching/invalidation type logic.

> [...]  That's the problem I'm facing where, before my patch, the
> only thing I could do was to remove the sqlite debuginfod database
> and index all again every time I rebuild a package in the yocto
> distribution, to have debuginfod serving the new debuginfo
> correctly.

Yeah, that shouldn't be necessary.

Maybe we could make this discussion more concrete by having you show
us an actual example.  Two different yocto package versions, with
detailed timestamp/content listings, ingested into an otherwise empty
debuginfod database one at a time, and doing a database dump after
both completed scan operations.

- FChE

Reply via email to