)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6d166de2e4b876122d153ef4fe2cb6aa82a691e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"64df9217_cc1b7982","updated":"2024-02-27 15:09:58.000000000","message":"I\u0027m still not happy with the interface between object server and diskfile when we hit these partial metadata situations","commit_id":"6f93606ea1f21c3dc2fe0df7ef2e1810faf06eae"}],"swift/obj/server.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6d166de2e4b876122d153ef4fe2cb6aa82a691e5","unresolved":true,"context_lines":[{"line_number":652,"context_line":"            # removed the metafile: that request will either replace or inherit"},{"line_number":653,"context_line":"            # the most recent content-type so it\u0027s ok that we might not have"},{"line_number":654,"context_line":"            # most the recent content-type here."},{"line_number":655,"context_line":"            orig_metadata \u003d e.metadata"},{"line_number":656,"context_line":"        orig_timestamp \u003d Timestamp(orig_metadata.get(\u0027X-Timestamp\u0027, 0))"},{"line_number":657,"context_line":"        orig_ctype_timestamp \u003d disk_file.content_type_timestamp"},{"line_number":658,"context_line":"        req_ctype_time \u003d \u00270\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"9965fe80_4fa5addf","line":655,"updated":"2024-02-27 15:09:58.000000000","message":"so here we\u0027re careful not to assume the diskfile is properly open...","commit_id":"6f93606ea1f21c3dc2fe0df7ef2e1810faf06eae"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"6d166de2e4b876122d153ef4fe2cb6aa82a691e5","unresolved":true,"context_lines":[{"line_number":654,"context_line":"            # most the recent content-type here."},{"line_number":655,"context_line":"            orig_metadata \u003d e.metadata"},{"line_number":656,"context_line":"        orig_timestamp \u003d Timestamp(orig_metadata.get(\u0027X-Timestamp\u0027, 0))"},{"line_number":657,"context_line":"        orig_ctype_timestamp \u003d disk_file.content_type_timestamp"},{"line_number":658,"context_line":"        req_ctype_time \u003d \u00270\u0027"},{"line_number":659,"context_line":"        req_ctype \u003d request.headers.get(\u0027Content-Type\u0027)"},{"line_number":660,"context_line":"        if req_ctype:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5d989274_9a6cb8f9","line":657,"updated":"2024-02-27 15:09:58.000000000","message":"...but this does assume the diskfile is open :(","commit_id":"6f93606ea1f21c3dc2fe0df7ef2e1810faf06eae"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ebbceaef5e75090fbc7d5ca7d976e56e14c371d5","unresolved":true,"context_lines":[{"line_number":685,"context_line":"            if orig_delete_at !\u003d new_delete_at:"},{"line_number":686,"context_line":"                if new_delete_at:"},{"line_number":687,"context_line":"                    self.delete_at_update("},{"line_number":688,"context_line":"                        \u0027PUT\u0027, new_delete_at, account, container, obj, request,"},{"line_number":689,"context_line":"                        device, policy)"},{"line_number":690,"context_line":"                if orig_delete_at:"},{"line_number":691,"context_line":"                    self.delete_at_update(\u0027DELETE\u0027, orig_delete_at, account,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c501974f_bc9ff36e","line":688,"updated":"2024-03-05 21:10:33.000000000","message":"Won\u0027t this mean we could be putting known-stale entries on the expiry queues? Seems risky given https://bugs.launchpad.net/swift/+bug/1182628","commit_id":"6f93606ea1f21c3dc2fe0df7ef2e1810faf06eae"}]}
