)]}'
{"swift/obj/replicator.py":[{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"2ce2dfd9e41b67c72f0177ffec8fb5f3b46e2d3b","unresolved":false,"context_lines":[{"line_number":764,"context_line":"        self.logger.info("},{"line_number":765,"context_line":"            _(\"Object replication complete (once). (%.02f minutes)\"), total)"},{"line_number":766,"context_line":"        if not (override_partitions or override_devices):"},{"line_number":767,"context_line":"            replication_last \u003d time.time()"},{"line_number":768,"context_line":"            dump_recon_cache({\u0027replication_stats\u0027: self.stats,"},{"line_number":769,"context_line":"                              \u0027replication_time\u0027: total,"},{"line_number":770,"context_line":"                              \u0027replication_last\u0027: replication_last,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_4f522f69","side":"PARENT","line":767,"updated":"2016-01-21 08:07:27.000000000","message":"So, moving this line out of the condition actually changes the last replication time logging. Before this change the last replication time represented the time since a \"normal\", full replication pass, ie. not using an override option.\n\nWith this change also override replication passes are remembered; thus the time reported is no longer the time from the last \"full\" replication pass. If someone enables an override option the shown time might be quite low, not indicating any problem.\n\nIs this intended?","commit_id":"b9fd530657e885bd7c1796d1075803e690563b1d"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"21e45b3601d1992dc33fe902aaee22d5dab0ab30","unresolved":false,"context_lines":[{"line_number":764,"context_line":"        self.logger.info("},{"line_number":765,"context_line":"            _(\"Object replication complete (once). (%.02f minutes)\"), total)"},{"line_number":766,"context_line":"        if not (override_partitions or override_devices):"},{"line_number":767,"context_line":"            replication_last \u003d time.time()"},{"line_number":768,"context_line":"            dump_recon_cache({\u0027replication_stats\u0027: self.stats,"},{"line_number":769,"context_line":"                              \u0027replication_time\u0027: total,"},{"line_number":770,"context_line":"                              \u0027replication_last\u0027: replication_last,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_5e573e02","side":"PARENT","line":767,"in_reply_to":"9a68dd71_4f522f69","updated":"2016-01-21 08:50:17.000000000","message":"Sorry, I don\u0027t understand your comment because replication_last is a local variable and only uses for dump_recon_cache.\n\nThe purpose for this moving is \nthere are two places (L763 and L767) for getting current time but the current time should be same time so I moved the line to out of the condition.","commit_id":"b9fd530657e885bd7c1796d1075803e690563b1d"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"e9fca0f8a66e55598e1f288776f8bace7b15ac1a","unresolved":false,"context_lines":[{"line_number":764,"context_line":"        self.logger.info("},{"line_number":765,"context_line":"            _(\"Object replication complete (once). (%.02f minutes)\"), total)"},{"line_number":766,"context_line":"        if not (override_partitions or override_devices):"},{"line_number":767,"context_line":"            replication_last \u003d time.time()"},{"line_number":768,"context_line":"            dump_recon_cache({\u0027replication_stats\u0027: self.stats,"},{"line_number":769,"context_line":"                              \u0027replication_time\u0027: total,"},{"line_number":770,"context_line":"                              \u0027replication_last\u0027: replication_last,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_f49c136b","side":"PARENT","line":767,"in_reply_to":"9a68dd71_5e573e02","updated":"2016-01-21 09:37:59.000000000","message":"I think the replication_last should be only equal to the current time if this replication pass is a normal one, not if there are only a few devices are replicated.\n\nLet\u0027s see: by default an operator looks at the object_replication_last from recon. This time is the time when the last full replication passed successfully for the given node.\n\nFor some reason it might be required to run a replicator only on a handoff partition or a subset of devices. Before this change, the time this pass finished would not update the replication_last output in the recon. Therefore, the replication_last is another good indicator if a full replication pass run successfully. If the time never changes, there is something wrong.\n\nWith this patch it changes; if there is for example a single override device the replication_last gets always updated, and that might not be expected from the operator.\n\nI think we need at least a warning (in the Changelog? Docs?) if this behavior will be changed.","commit_id":"b9fd530657e885bd7c1796d1075803e690563b1d"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"e017f3c9919202326a9def15d8bb75f878b0f1a4","unresolved":false,"context_lines":[{"line_number":764,"context_line":"        self.logger.info("},{"line_number":765,"context_line":"            _(\"Object replication complete (once). (%.02f minutes)\"), total)"},{"line_number":766,"context_line":"        if not (override_partitions or override_devices):"},{"line_number":767,"context_line":"            replication_last \u003d time.time()"},{"line_number":768,"context_line":"            dump_recon_cache({\u0027replication_stats\u0027: self.stats,"},{"line_number":769,"context_line":"                              \u0027replication_time\u0027: total,"},{"line_number":770,"context_line":"                              \u0027replication_last\u0027: replication_last,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_57b401f1","side":"PARENT","line":767,"in_reply_to":"9a68dd71_f49c136b","updated":"2016-01-21 09:56:37.000000000","message":"Nevermind, please ignore my comments above. My terminal window was screwed - it looked like the dump_recon_cache will be executed always, and is not part of the condition.","commit_id":"b9fd530657e885bd7c1796d1075803e690563b1d"}]}
