> -----Original Message----- > From: Richard Purdie <[email protected]> > Sent: den 19 februari 2026 17:48 > To: Peter Kjellerstedt <[email protected]>; > [email protected] > Subject: Re: [OE-core] [PATCH][RESEND] sstate.bbclass: Always show a progress > bar if an sstate summary is wanted > > On Thu, 2026-02-19 at 17:21 +0100, Peter Kjellerstedt via > lists.openembedded.org wrote: > > In case sstate_checkhashes() is expected to show an sstate summary, then > > always show the process progress bar regardless of how long the task > > list is. Without this, the sstate summary could unintentionally > > overwrite another active progress bar. > > > > Signed-off-by: Peter Kjellerstedt <[email protected]> > > --- > > meta/classes-global/sstate.bbclass | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/meta/classes-global/sstate.bbclass > > b/meta/classes-global/sstate.bbclass > > index 2fd29d7323..6f72490065 100644 > > --- a/meta/classes-global/sstate.bbclass > > +++ b/meta/classes-global/sstate.bbclass > > @@ -1048,7 +1048,7 @@ def sstate_checkhashes(sq_data, d, siginfo=False, > > currentcount=0, summary=True, > > > > ## thread-safe counter > > cnt_tasks_done = itertools.count(start = 1) > > - progress = len(tasklist) >= 100 > > + progress = summary or len(tasklist) >= 100 > > if progress: > > msg = "Checking sstate mirror object availability" > > bb.event.fire(bb.event.ProcessStarted(msg, len(tasklist)), > > d) > > This has sat in the review queue for a while since I haven't found the > time to reply. I suspect you're going to disagree with me and I really > haven't had the time to have a discussion on it. > > For reference, whilst the patch was removed from master-next, it is > still in the review queue here: > > https://git.openembedded.org/openembedded-core-contrib/log/?h=master-backlog > > (and mentioned in the status report about review call changes) > > Since you're now forcing me to reply about this, I'm confused by what > "unintentionally overwrite" means in the commit message since it would > seemingly only do that if it shows progress and you're making it always > show progress. That would be in theory worse, but consistent. > > The intent behind the "100" limit was to only show the progress bar if > there is a decent chunk of work to be done, rather than flash it onto > the screen then off again. I think that reasoning is still valid, > showing progress bars for things which happen more quickly than the > progress is useful for is a bit pointless.
Absolutely. The summary argument is only set to True during the initial check of the sstate cache, i.e., when the "Sstate summary: ..." message is printed at the beginning of the build. So my change only affects this case, and does not affect the progress bars that are shown mid-build as a result of using a hash server. > > So at the very least we need to be clear what the commit message means > but I'm not keen on the removal of the 100 limit. > > There were other fixes around the progress bar handling and I am also > wondering if this issue was still relevant too. Yes, it is still relevant. There are actually two progress bars involved in this case, the one for "Initialising tasks" and the one for "Checking sstate mirror object availability". When it works as expected, it will look something like this (I've added the x's and the y's to make the problem more obvious in the next example): Initialising tasks yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy: 100% |###########| Time: 0:00:00 Checking sstate mirror object availability xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: 100% |###| Time: 0:00:00 Sstate summary: Wanted 9 Local 0 Mirrors 0 Missed 9 Current 255 (0% match, 96% complete) However, when there are less than 100 tasks, then it will instead look like this: Sstate summary: Wanted 0 Local 0 Mirrors 0 Missed 0 Current 17 (0% match, 100% complete)yyyy: 99% |######### | ETA: 0:00:00 Initialising tasks yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy: 100% |##########| Time: 0:00:00 I.e., what's happening here is that the "Initialising tasks" progress bar is still active when the "Sstate summary" is output, but since it does not know about that progress bar being active, it overwrites it, resulting in parts of it remaining at the end of the line. What my change does is to effectively make sure that the "Initialising tasks" progress bar is finalized before the sstate summary is shown. This is achieved by forcing the "Checking sstate mirror object availability" progress bar to be shown, and as this progress bar _is_ synchronized with the output of the sstate summary, everything looks as expected. You can see the difference by running these commands without and with my patch: bitbake m4-native -c cleansstate bitbake m4-native One thing I just noticed though is that my patch missed a case. If there actually are no tasks at all, e.g., when everything is in the sstate cache or when running the cleansstate task, then the output will still be wrong. I will send an updated version of my patch to take care of this, and to try and improve the commit message to better explain what is going on. > Cheers, > > Richard //Peter
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#231437): https://lists.openembedded.org/g/openembedded-core/message/231437 Mute This Topic: https://lists.openembedded.org/mt/117894729/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
