-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mixer build delta-packs
may generate too few deltas in some scenarios
#782
Comments
One idea to fix this would be to teach mixer not to rely on the "last changed" values listed IIRC, this is the approach swupd-server used for delta creation... |
plan B would be to remove the version from the hash filename completely...
in the sha1 world we were worried about collisions potentially but in
sha256 this should be safe
I'll ponder that more but it might well be the simplest change
…On Wed, Aug 31, 2022 at 9:43 PM Patrick McCarty ***@***.***> wrote:
One idea to fix this would be to teach mixer not to rely on the "last
changed" values listed Manifest.full for the "from" version when creating
deltas. Instead, it could parse every relevant bundle manifest for delta
candidates, since those file entries have accurate "last changed" values.
(Note that the "last changed" values in a Manifest.full are the maximum
of all values from the bundle manifests, so the values are informative but
not actionable.)
IIRC, this is the approach swupd-server used for delta creation...
—
Reply to this email directly, view it on GitHub
<#782 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJ54FN3IBA64L77L3DQQBTV4AYATANCNFSM6AAAAAAQB3VK34>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
I like this idea a bit more than plan A (from my last comment), though the barrier to entry is higher, since swupd-client would need to support the change as well. And then there is the question of breaking or preserving backwards compatibility... |
in #782 a funky issue is found where we do not use the right versions for delta files in some cases. A full fix is complicated, but the client IGNORES the versions! so we can just hardcode the versions to anything (10 and 20 here) and it'll suddenly resolve itself
in #782 a funky issue is found where we do not use the right versions for delta files in some cases. A full fix is complicated, but the client IGNORES the versions! so we can just hardcode the versions to anything (10 and 20 here) and it'll suddenly resolve itself
Consider this test case:
After creating this update stream, one would expect the delta pack for
curl
from version 10 (pack-curl-from-10.tar) to contain a delta forlibcurl.so.4.8.0
, but it does not.Here is how
libcurl.so.4.8.0
changed across mix versions:When
mixer build delta-packs
is run, there is a delta generated for the library, but its name is20-40-cdf3620d7c5fc0711221586cb0de43c97d8caa71a601f0501dc30b8908279b7e-0558084bbf9f8146d8ba9a1bfe5e10ebb3dfd05abdde1fd89a7604a0e1f58ad4
, because mixer consultsManifest.full
for versions 30 and 40 when determining which deltas to create.For the delta to be valid for the
curl
andos-core-webproxy
bundles when updating to version 40, its name would have to be10-40-cdf3620d7c5fc0711221586cb0de43c97d8caa71a601f0501dc30b8908279b7e-0558084bbf9f8146d8ba9a1bfe5e10ebb3dfd05abdde1fd89a7604a0e1f58ad4
... Note the naming difference is the prefix (10-40
versus20-40
).In this particular case, the generated delta (with
20-40
prefix) will not be included in any delta pack, due to howtelemetrics
was added in version 20 and removed in version 30, but this problem is a general one: It may be encountered whenever content is added/removed to an arbitrary number of bundles at different versions, with content not changing at the package level.The text was updated successfully, but these errors were encountered: