-
Notifications
You must be signed in to change notification settings - Fork 192
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
Skip using the active slot as a seed when installing bundles #513
base: master
Are you sure you want to change the base?
Conversation
When using a local chunk store, it's useful to ignore using the active slot as a seed. Signed-off-by: fhackenberger <[email protected]>
Signed-off-by: fhackenberger <[email protected]>
The code in 03665b7 wasn't working yet. This commit is now tested using the DBus daemon. Signed-off-by: fhackenberger <[email protected]>
eb12801
to
345f6b1
Compare
Signed-off-by: fhackenberger <[email protected]>
a473586
to
8e8b193
Compare
Signed-off-by: fhackenberger <[email protected]>
Signed-off-by: fhackenberger <[email protected]>
Codecov Report
@@ Coverage Diff @@
## master #513 +/- ##
==========================================
- Coverage 66.5% 66.47% -0.03%
==========================================
Files 24 24
Lines 6463 6470 +7
==========================================
+ Hits 4298 4301 +3
- Misses 2165 2169 +4
Continue to review full report at Codecov.
|
I'm not really familiar with your testing requirements. Can someone else contribute a test for this new feature? |
@ejoerns How do you feel about the tests? Would you or someone else be able to add them? I've looked at the testing code, but I'm quite unfamiliar with the framework. |
I agree that it is a use case to disable seeding. Mainly because of casync's limited capabilities in seed store cleanup and for devices with really constrained temporary storage. Thus basically introducing an option to disable seeding is something that I'd like to see. But the way for selecting this option you chose is probably the wrong one:
To target the first point, we have #446 hanging around and waiting for getting merged. I thought that we already had some own developments towards this direction, but I was not able to find any. @OnkelUlla could you also please have a look at this as you just cared for the casync stuff in context of #501 ? |
Thanks for the feedback @ejoerns! I agree it should rather be a system setting in system.conf, having it as an argument for the install command is less than ideal. Not sure if I have the time to adapt this soon, so I'd also be happy if someone else continues this work. |
ignore-slot-seed is required in configuration file. Add it to config -structure to be configurable, with reading in load_config. Add test to check that the new configuration option is read, and that it has a default value (false) when not specified. Casync options in general are missing a test in config_file.test. Add a bare minimum test to check that other options (storepath and tmppath) are also read in some way. ignore-slot-seed flag checks in installation are based on code made by fhackenerger, located in PR rauc#513, with excess code refactored/removed to fit into config option. Signed-off-by: Esa Laakso <[email protected]>
As a workaround for resource intensive and slow install procedures when using casync and tar images (see #511) I created an option for the install command, which skips using the active slot as a seed when running casync.
This enables the following use case:
casync make --store /var/tmp/update.casync.castr /var/tmp/update.casync.caidx /mnt/rauc/
step in the background once.rauc install --ignore-seed bundle.raucb
The workaround decribed splits the long running operations into separate units, which can be run independently and frees the device to do a full
casync make
on every update. Downside is that additional storage is used permanently. But that's probably good, as it makes it clear how much space is actually left, if updates should still work.