aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEnguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>2024-02-22 16:21:53 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-02-23 14:32:29 +0000
commit7cea7f7a87da041fc1ad370c5c3d15aabad3a0d4 (patch)
treef3ece1f10d48c47ddbc6849cf8fdadc717610b83
parent14a27306f6dceb4999c2804ccae5a09cc3d8dd49 (diff)
downloadbitbake-contrib-7cea7f7a87da041fc1ad370c5c3d15aabad3a0d4.tar.gz
bitbake: progressbar: accept value over initial maxval
There is a very rare case where the maxval is improperly computed initially for cache loading progress, and the value will go over. Explanation from bitbake/lib/bb/cache.py:736 in MulticonfigCache:__init__:progress() # we might have calculated incorrect total size because a file # might've been written out just after we checked its size In that case, progressbar will receive a value over the initial maxval. This results in a ValueError stack trace as well as bitbake returning 1. Traceback (most recent call last): File ".../poky/bitbake/lib/bb/ui/knotty.py", line 736, in main cacheprogress.update(event.current) File ".../poky/bitbake/lib/progressbar/progressbar.py", line 256, in update raise ValueError('Value out of range') ValueError: Value out of range This fix mirrors the behavior of MulticonfigCache and accepts the new value as the new maxval. This is also what the percentage printout is doing in bitbake/lib/progressbar/progressbar.py:191 in ProgressBar:percentage() I encountered this issue randomly while working on a project with VSCode saving files while commands where fired. Note: This file is a fork from python-progressbar. It hasn't been refreshed in 8 years. We did only two commits, 5 years ago with minor modifications. This new change is also not how the upstream project is behaving. Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/progressbar/progressbar.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/progressbar/progressbar.py b/lib/progressbar/progressbar.py
index e2b6ba108..d4da10ab7 100644
--- a/lib/progressbar/progressbar.py
+++ b/lib/progressbar/progressbar.py
@@ -253,7 +253,7 @@ class ProgressBar(object):
if (self.maxval is not UnknownLength
and not 0 <= value <= self.maxval):
- raise ValueError('Value out of range')
+ self.maxval = value
self.currval = value