{"push_id":2859110705,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"4e560340200e5430e0e01c2eab9089e1c890a1e5","before":"dd011ffa891211aa2d9790484c9e3caeffe78dd4","commits":[{"sha":"4e560340200e5430e0e01c2eab9089e1c890a1e5","author":{"name":"Matthew Leeds","email":"424ec9dbc7f06560bd9f0866b438a24a0e995bb7@endlessm.com"},"message":"avahi: Be robust to missing refs in peer summaries\n\nIn the OstreeRepoFinderAvahi implementation,\nostree_avahi_service_build_repo_finder_result() is where the DNS-SD\nrecords are processed and turned into OstreeRepoFinderResult objects.\nEach result object is supposed to have a hash table mapping refs to\nchecksums, so this is accomplished by first adding a placeholder (a ref\nmapping to a NULL checksum) for each ref matched by the bloom filter,\nand later filling in the checksums using the remote's summary file,\nwhich happens in get_checksums(). The problem is that there's no\nguarantee all the checksums will be resolved (non-NULL), so the\nostree_repo_finder_result_new() call then hits an assertion failure in\nis_valid_collection_ref_map() leading to a crash (in the case that one\nor more refs had NULL checksums).\n\nThere are at least two situations where the ref checksum might not be\nfound in the peer remote's summary file:\n1) The bloom filter match was a false positive. This is going to happen\nsometimes by design.\n2) The peer remote's summary is out of sync with its DNS-SD records.\nThis shouldn't normally happen but it's still good to be robust to the\npossibility; in Endless OS nothing guarantees the atomicity of updating\nthe summary and DNS-SD records.\n\nThis commit changes libostree to be robust to the possibility of refs\nmissing from the peer remote's summary, by removing any that still have\na NULL checksum associated with them after the summary has been fetched\nand processed.\n\nThe other OstreeRepoFinder implementations don't have this issue because\nthey use summary files directly and therefore always have access to the\nchecksum.\n\nCloses: #1717\nApproved by: pwithnall","distinct":true,"url":"https://api.github.com/repos/endlessm/ostree/commits/4e560340200e5430e0e01c2eab9089e1c890a1e5"}]}
{"actor":{"display_login":"mwleeds"}}