ostree_repo_prepare_transaction() should always be matched with a call to either ostree_repo_commit_transaction() or ostree_repo_abort_transaction(). Since ostree_repo_pull_with_options() does not call ostree_repo_abort_transaction() on errors, the OstreeRepo instance will hit an assertion when it's re-used later for another attempt, such as when the update is driven by an external component through libostree and network temporarily goes down. This commit simply always calls ostree_repo_abort_transaction() in the exit path of ostree_repo_pull_with_options(), since the function is safe to call even when we're not in a transaction, and that matches e.g. what ostree-sysroot-cleanup.c does. |
||
|---|---|---|
| .. | ||
| boot | ||
| libostree | ||
| libotutil | ||
| ostree | ||
| switchroot | ||