)]}'
{"swift/obj/diskfile.py":[{"author":{"_account_id":16896,"name":"Ondřej Nový","email":"novy@ondrej.org","username":"onovy"},"change_message_id":"50d470f336a92aac4a9775d784848a07afb12c14","unresolved":false,"context_lines":[{"line_number":1067,"context_line":"                if len(suff) \u003d\u003d 3:"},{"line_number":1068,"context_line":"                    hashes.setdefault(suff, None)"},{"line_number":1069,"context_line":"            modified \u003d True"},{"line_number":1070,"context_line":"        elif check_missing:"},{"line_number":1071,"context_line":"            # Add missing suffixes without invalidating existing ones"},{"line_number":1072,"context_line":"            for suff in self._listdir(partition_path):"},{"line_number":1073,"context_line":"                if len(suff) \u003d\u003d 3 and suff not in hashes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_1bb1df47","line":1070,"updated":"2016-11-24 19:59:19.000000000","message":"i think this code is completly same as do_listdir above\n\n\"suff not in hashes\" is useless, because .setdefault sets value only if not exists.","commit_id":"407c20bb0a86733cc701cc745f27161b4e43c8a2"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"b6b77b959d4d877df85cd7c474825a7507287c34","unresolved":false,"context_lines":[{"line_number":1067,"context_line":"                if len(suff) \u003d\u003d 3:"},{"line_number":1068,"context_line":"                    hashes.setdefault(suff, None)"},{"line_number":1069,"context_line":"            modified \u003d True"},{"line_number":1070,"context_line":"        elif check_missing:"},{"line_number":1071,"context_line":"            # Add missing suffixes without invalidating existing ones"},{"line_number":1072,"context_line":"            for suff in self._listdir(partition_path):"},{"line_number":1073,"context_line":"                if len(suff) \u003d\u003d 3 and suff not in hashes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_6f7da3e6","line":1070,"in_reply_to":"5a74a57a_1bb1df47","updated":"2016-11-25 07:06:02.000000000","message":"Mental derangement on my side, I shouldn\u0027t submit code in the evening.\n\nYou\u0027re totally right, this is crap. Fixing.","commit_id":"407c20bb0a86733cc701cc745f27161b4e43c8a2"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"60e95f80e74844c78e6b2776c0b85d0383689a38","unresolved":false,"context_lines":[{"line_number":1072,"context_line":"            for suff in self._listdir(partition_path):"},{"line_number":1073,"context_line":"                if len(suff) \u003d\u003d 3 and suff not in hashes:"},{"line_number":1074,"context_line":"                    hashes.setdefault(suff, None)"},{"line_number":1075,"context_line":"                    modified \u003d True"},{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":"        hashes.update((suffix, None) for suffix in recalculate)"},{"line_number":1078,"context_line":"        for suffix, hash_ in hashes.items():"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_cfceb8b3","line":1075,"updated":"2016-11-25 05:32:11.000000000","message":"I haven\u0027t been looking at this too long, so I\u0027m sure you guys have more of this loaded into your head.. but how much does it hurt us to always invalidate missing hashes if they exist in invalidations_file when in consolidate_hashes?\n\nI mean whether they already exist in hashes or not. isn\u0027t that the point of the invalidation file? Something as simple as: http://paste.openstack.org/show/590408/\n\n_get_hashes already calls consolidate_hashes anyway.\n\nOr please enlighten me, so I can be up to speed with you guys.. I\u0027ve been working in the db replicators too much lately ;)","commit_id":"407c20bb0a86733cc701cc745f27161b4e43c8a2"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"b6b77b959d4d877df85cd7c474825a7507287c34","unresolved":false,"context_lines":[{"line_number":1072,"context_line":"            for suff in self._listdir(partition_path):"},{"line_number":1073,"context_line":"                if len(suff) \u003d\u003d 3 and suff not in hashes:"},{"line_number":1074,"context_line":"                    hashes.setdefault(suff, None)"},{"line_number":1075,"context_line":"                    modified \u003d True"},{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":"        hashes.update((suffix, None) for suffix in recalculate)"},{"line_number":1078,"context_line":"        for suffix, hash_ in hashes.items():"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_0f226f00","line":1075,"in_reply_to":"5a74a57a_cfceb8b3","updated":"2016-11-25 07:06:02.000000000","message":"That might be an option as well, but for this bug.\n\nIn this case the invalidate file is likely empty already, and the hashes.pkl is already missing suffixes. So we need to add them as soon as possible to fix replication.","commit_id":"407c20bb0a86733cc701cc745f27161b4e43c8a2"}]}
