diff options
author | Colin Walters <walters@verbum.org> | 2017-02-10 17:35:23 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2017-02-17 14:58:25 +0000 |
commit | 693f7c5f609bbbddd84de054d6edd04a56b5c8d1 (patch) | |
tree | d729c723472af27fd91a9891e2d4b15be9ae2529 | |
parent | e1118e320d6c71a9b678b1dee395687889d51422 (diff) | |
download | ostree-693f7c5f609bbbddd84de054d6edd04a56b5c8d1.tar.gz |
pull: Explicitly error out if metadata objects are fallbacks
I don't know why I added support for this; it makes no sense really. If we have
large metadata objects something has gone badly wrong.
The delta compiler has always only processed fallbacks for regular
content files.
Dropping support in the fetcher for this will simplify later handling of
fallback progress accounting.
Closes: #678
Approved by: giuseppe
-rw-r--r-- | src/libostree/ostree-repo-pull.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/libostree/ostree-repo-pull.c b/src/libostree/ostree-repo-pull.c index 129e25da..6246011f 100644 --- a/src/libostree/ostree-repo-pull.c +++ b/src/libostree/ostree-repo-pull.c @@ -1618,19 +1618,14 @@ process_one_static_delta_fallback (OtPullData *pull_data, } if (!is_stored) - { + { + /* The delta compiler never did this, there's no reason to support it */ if (OSTREE_OBJECT_TYPE_IS_META (objtype)) { - g_autoptr(GVariant) objname = ostree_object_name_serialize (checksum, objtype); - if (!g_hash_table_lookup (pull_data->requested_metadata, objname)) - { - gboolean do_fetch_detached; - g_hash_table_add (pull_data->requested_metadata, g_variant_ref (objname)); - - do_fetch_detached = (objtype == OSTREE_OBJECT_TYPE_COMMIT); - enqueue_one_object_request (pull_data, checksum, objtype, NULL, do_fetch_detached, FALSE); - checksum = NULL; /* Transfer ownership */ - } + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "Found metadata object as fallback: %s.%s", checksum, + ostree_object_type_to_string (objtype)); + goto out; } else { |