I just sent a patch for this:
"lib/sstatesig/find_siginfo: raise an error instead of returning None
when obtaining mtime"

It will not fix the issue, but it will get better diagnostics (the
error can be suppressed, but it's something that shouldn't be
happening, so I want to see what is really the issue).

Alex

On Mon, 1 Jan 2024 at 19:27, Alexander Kanavin via
lists.openembedded.org <alex.kanavin=gmail....@lists.openembedded.org>
wrote:
>
> RP has reported the same issue elsewhere:
> https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/6254/steps/14/logs/stdio
>
>   File 
> "/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/bitbake/lib/bb/runqueue.py",
> line 1799, in 
> RunQueue.write_diffscenetasks(invalidtasks={'/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-core/gettext/gettext-minimal-native_0.22.4.bb:do_configure',
> 'virtual:native:/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-devtools/gnu-config/gnu-config_git.bb:do_configure',
> 'virtual:native:/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-extended/zstd/zstd_1.5.5.bb:do_configure',
> '/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb:do_configure',
> 'virtual:native:/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-extended/unzip/unzip_6.0.bb:do_configure',
> '/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb:do_configure',
> 'virtual:native:/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb:do_configure',
> 'virtual:native:/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-extended/pigz/pigz_2.8.bb:do_configure',
> 'virtual:native:/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb:do_configure',
> '/home/pokybuild/yocto-worker/oe-selftest-ubuntu/build/meta/recipes-extended/timezone/tzcode-native.bb:do_configure'}):
>                  if matches:
>     >                latestmatch = matches[sorted(matches.keys(),
> key=lambda h: matches[h]['time'])[-1]]['path']
>                      prevh = __find_sha256__.search(latestmatch).group(0)
> TypeError: '<' not supported between instances of 'NoneType' and 'float'
>
> It seems as though some of the entries lack timestamp information,
> probably because obtaining it from the filesystem had failed and the
> code placed 'None' into the data structure instead. I'll take a look
> at why that isn't reported sooner.
>
> Alex
>
> On Mon, 1 Jan 2024 at 14:00, Alexandre Belloni
> <alexandre.bell...@bootlin.com> wrote:
> >
> > Hello,
> >
> > I've been carrying the series for a while without any issue but got this
> > yesterday:
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6262/steps/14/logs/stdio
> >
> >
> > On 18/12/2023 09:43:58+0100, Alexander Kanavin wrote:
> > > Other than the formatting changes, there are two functional ones:
> > >
> > > - use perlcross instead of quilt, as quilt is special in the sense
> > > of being excluded from task hash calculcations. perlcross is a full
> > > participant.
> > >
> > > - run the full test (local + sstate) for gcc do_preconfiure change
> > > as the necessary fix has been implemented
> > > (sstatesig/find_siginfo: special-case gcc-source when looking in sstate 
> > > caches)
> > >
> > > Note that when several tasks are found to have changed (as is the case
> > > when base do_configure is adjusted), find_siginfo() runs
> > > glob.glob("*/*/*taskname*") against autobuilder sstate cache for each
> > > of those tasks (six or seven times). This is an expensive operation
> > > taking several minutes. I left it in for now, but if it's proven too slow
> > > the test would have to be reduced to checking a specific base recipe
> > > (e.g. zstd-native) rather than a distant image target.
> > >
> > > [YOCTO #15289]
> > >
> > > Signed-off-by: Alexander Kanavin <a...@linutronix.de>
> > > ---
> > >  .../perlcross_%.bbappend}                     |  0
> > >  meta/lib/oeqa/selftest/cases/sstatetests.py   | 22 +++++++++++--------
> > >  2 files changed, 13 insertions(+), 9 deletions(-)
> > >  rename meta-selftest/recipes-test/{quilt-native/quilt-native_%.bbappend 
> > > => perlcross/perlcross_%.bbappend} (100%)
> > >
> > > diff --git 
> > > a/meta-selftest/recipes-test/quilt-native/quilt-native_%.bbappend 
> > > b/meta-selftest/recipes-test/perlcross/perlcross_%.bbappend
> > > similarity index 100%
> > > rename from 
> > > meta-selftest/recipes-test/quilt-native/quilt-native_%.bbappend
> > > rename to meta-selftest/recipes-test/perlcross/perlcross_%.bbappend
> > > diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py 
> > > b/meta/lib/oeqa/selftest/cases/sstatetests.py
> > > index f827615ba1b..6af3c8f2178 100644
> > > --- a/meta/lib/oeqa/selftest/cases/sstatetests.py
> > > +++ b/meta/lib/oeqa/selftest/cases/sstatetests.py
> > > @@ -824,14 +824,16 @@ TMPDIR = 
> > > "${{TOPDIR}}/tmp-sstateprintdiff-difftmp-{}"
> > >
> > >
> > >      # Check if printdiff walks the full dependency chain from the image 
> > > target to where the change is in a specific recipe
> > > -    def test_image_minimal_vs_quilt(self):
> > > -        expected_output = ("Task quilt-native:do_install couldn't be 
> > > used from the cache because:",
> > > +    def test_image_minimal_vs_perlcross(self):
> > > +        expected_output = ("Task perlcross-native:do_install couldn't be 
> > > used from the cache because:",
> > >  "We need hash",
> > >  "most recent matching task was")
> > > -        expected_sametmp_output = expected_output + ("Variable 
> > > do_install value changed",'+    echo "this changes the task signature"')
> > > +        expected_sametmp_output = expected_output + (
> > > +"Variable do_install value changed",
> > > +'+    echo "this changes the task signature"')
> > >          expected_difftmp_output = expected_output
> > >
> > > -        self.run_test_printdiff_changerecipe("core-image-minimal", 
> > > "quilt-native", "-c do_install quilt-native",
> > > +        self.run_test_printdiff_changerecipe("core-image-minimal", 
> > > "perlcross", "-c do_install perlcross-native",
> > >  """
> > >  do_install:append() {
> > >      echo "this changes the task signature"
> > > @@ -846,10 +848,10 @@ expected_sametmp_output, expected_difftmp_output)
> > >          expected_output = ("Task {}:do_preconfigure couldn't be used 
> > > from the cache because:".format(gcc_source_pn),
> > >  "We need hash",
> > >  "most recent matching task was")
> > > -        expected_sametmp_output = expected_output + ("Variable 
> > > do_preconfigure value changed",'+    print("this changes the task 
> > > signature")')
> > > -        #FIXME: printdiff is supposed to find at least one preconfigure 
> > > task signature in the sstate cache, but isn't able to
> > > -        #expected_difftmp_output = expected_output
> > > -        expected_difftmp_output = ()
> > > +        expected_sametmp_output = expected_output + (
> > > +"Variable do_preconfigure value changed",
> > > +'+    print("this changes the task signature")')
> > > +        expected_difftmp_output = expected_output
> > >
> > >          self.run_test_printdiff_changerecipe("gcc-runtime", 
> > > "gcc-source", "-c do_preconfigure {}".format(gcc_source_pn),
> > >  """
> > > @@ -873,7 +875,9 @@ expected_sametmp_output, expected_difftmp_output)
> > >  "Task gnu-config-native:do_configure couldn't be used from the cache 
> > > because:",
> > >  "We need hash",
> > >  "most recent matching task was")
> > > -        expected_sametmp_output = expected_output + ("Variable 
> > > base_do_configure value changed",'+   echo "this changes 
> > > base_do_configure() definiton "')
> > > +        expected_sametmp_output = expected_output + (
> > > +"Variable base_do_configure value changed",
> > > +'+   echo "this changes base_do_configure() definiton "')
> > >          expected_difftmp_output = expected_output
> > >
> > >          self.run_test_printdiff_changeconfig("core-image-minimal",
> > > --
> > > 2.39.2
> > >
> >
> > >
> > >
> > >
> >
> >
> > --
> > Alexandre Belloni, co-owner and COO, Bootlin
> > Embedded Linux and Kernel engineering
> > https://bootlin.com
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193236): 
https://lists.openembedded.org/g/openembedded-core/message/193236
Mute This Topic: https://lists.openembedded.org/mt/103239347/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to