)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"dabb66125440a110c34a40876f8a052ca9a6de89","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenxiao \u003cchenxiao@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-05 18:20:44 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes Error occours when resize-confirm an instance using NFS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize an instance using at least two compute nodes,"},{"line_number":10,"context_line":"KVM, and NFS share_storage. resize work well, but resize-confirm"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2Fc4Y%3D","line":7,"updated":"2013-11-05 22:47:23.000000000","message":"Prefix with \"libvirt:\" for driver changes.","commit_id":"cd7c2fce9b83c806c502ac549cf045bdac29f551"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"5941a8eba21ce76132e9532ef931d8e5fae40d01","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenxiao \u003cchenxiao@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-05 18:20:44 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes Error occours when resize-confirm an instance using NFS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize an instance using at least two compute nodes,"},{"line_number":10,"context_line":"KVM, and NFS share_storage. resize work well, but resize-confirm"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2Fb2I%3D","line":7,"updated":"2013-11-06 08:37:11.000000000","message":"Title \u003e 50.","commit_id":"cd7c2fce9b83c806c502ac549cf045bdac29f551"},{"author":{"_account_id":7138,"name":"David Jia","email":"jiataotj@cn.ibm.com","username":"jiataotj"},"change_message_id":"5c6a1824a8f4ef58cce02f58eec9374b8662e9ed","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenxiao \u003cchenxiao@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-05 18:20:44 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes Error occours when resize-confirm an instance using NFS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize an instance using at least two compute nodes,"},{"line_number":10,"context_line":"KVM, and NFS share_storage. resize work well, but resize-confirm"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2FcAc%3D","line":7,"updated":"2013-11-06 07:25:25.000000000","message":"hi Xiao,\n\nPlease consider to use this as the title \"Libvirt:Instance resize confirm issue against NFS\"","commit_id":"cd7c2fce9b83c806c502ac549cf045bdac29f551"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"b11c9ca95bc8aea9cda2151e54f399c49a9af442","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenxiao \u003cchenxiao@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-05 18:20:44 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes Error occours when resize-confirm an instance using NFS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize an instance using at least two compute nodes,"},{"line_number":10,"context_line":"KVM, and NFS share_storage. resize work well, but resize-confirm"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2FbKQ%3D","line":7,"in_reply_to":"AAAATn%2F%2Fb2I%3D","updated":"2013-11-06 14:32:48.000000000","message":"ok, I will change it, thanks","commit_id":"cd7c2fce9b83c806c502ac549cf045bdac29f551"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"2be289c19453fc531adffb9ed1ca74f85b503ede","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenxiao \u003cchenxiao@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-05 18:20:44 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes Error occours when resize-confirm an instance using NFS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize an instance using at least two compute nodes,"},{"line_number":10,"context_line":"KVM, and NFS share_storage. resize work well, but resize-confirm"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2FcpE%3D","line":7,"in_reply_to":"AAAATn%2F%2Fc4Y%3D","updated":"2013-11-06 01:47:03.000000000","message":"ok, Brian Elliott, Thank you,","commit_id":"cd7c2fce9b83c806c502ac549cf045bdac29f551"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"b11c9ca95bc8aea9cda2151e54f399c49a9af442","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenxiao \u003cchenxiao@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-05 18:20:44 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes Error occours when resize-confirm an instance using NFS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize an instance using at least two compute nodes,"},{"line_number":10,"context_line":"KVM, and NFS share_storage. resize work well, but resize-confirm"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2FbKE%3D","line":7,"in_reply_to":"AAAATn%2F%2FcAc%3D","updated":"2013-11-06 14:32:48.000000000","message":"ok, thank you!","commit_id":"cd7c2fce9b83c806c502ac549cf045bdac29f551"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"5941a8eba21ce76132e9532ef931d8e5fae40d01","unresolved":false,"context_lines":[{"line_number":10,"context_line":"KVM, and NFS share_storage. resize work well, but resize-confirm"},{"line_number":11,"context_line":"will occurs IOError when try to remove the backup instance"},{"line_number":12,"context_line":"directory. We can change the delete method like other part in"},{"line_number":13,"context_line":"driver.py."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #1248019"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2Fb08%3D","line":13,"updated":"2013-11-06 08:37:11.000000000","message":"Sorry, I feel this message is not very clear. What error makes you must execute \"rm -rf\"? Can you briefly describe it in commit message?","commit_id":"cd7c2fce9b83c806c502ac549cf045bdac29f551"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"b11c9ca95bc8aea9cda2151e54f399c49a9af442","unresolved":false,"context_lines":[{"line_number":10,"context_line":"KVM, and NFS share_storage. resize work well, but resize-confirm"},{"line_number":11,"context_line":"will occurs IOError when try to remove the backup instance"},{"line_number":12,"context_line":"directory. We can change the delete method like other part in"},{"line_number":13,"context_line":"driver.py."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: #1248019"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2FbKU%3D","line":13,"in_reply_to":"AAAATn%2F%2Fb08%3D","updated":"2013-11-06 14:32:48.000000000","message":"ok, will give some annotation, thanks","commit_id":"cd7c2fce9b83c806c502ac549cf045bdac29f551"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"3e0e81fe408b1f342e96c3b10a9f2dfe5da5e226","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Libvirt:Instance resize confirm issue against NFS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize-confirm on NFS (KVM) using at least two"},{"line_number":10,"context_line":"compute nodes, will occur OSError when try to cleanup the"},{"line_number":11,"context_line":"backup instance directory and make instance status \"Error\"."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2FQ1U%3D","line":9,"updated":"2013-11-12 03:24:55.000000000","message":"\u0027When I test ...\"","commit_id":"9d9a38328614d20d1b7e79c50b24ca19a6ad76fe"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"3e0e81fe408b1f342e96c3b10a9f2dfe5da5e226","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Libvirt:Instance resize confirm issue against NFS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize-confirm on NFS (KVM) using at least two"},{"line_number":10,"context_line":"compute nodes, will occur OSError when try to cleanup the"},{"line_number":11,"context_line":"backup instance directory and make instance status \"Error\"."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"One way to cleanup resize is using delay_on_retry and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2FQ1Q%3D","line":10,"updated":"2013-11-12 03:24:55.000000000","message":"\u0027OSError will occur ...\u0027","commit_id":"9d9a38328614d20d1b7e79c50b24ca19a6ad76fe"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"3e0e81fe408b1f342e96c3b10a9f2dfe5da5e226","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize-confirm on NFS (KVM) using at least two"},{"line_number":10,"context_line":"compute nodes, will occur OSError when try to cleanup the"},{"line_number":11,"context_line":"backup instance directory and make instance status \"Error\"."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"One way to cleanup resize is using delay_on_retry and"},{"line_number":14,"context_line":"maximum attempts setting. Replace rmtree() because"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2FQ1M%3D","line":11,"updated":"2013-11-12 03:24:55.000000000","message":"\u0027and will make\u0027 ...","commit_id":"9d9a38328614d20d1b7e79c50b24ca19a6ad76fe"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"0f2e1151e55a7952ba2fd2021592858287e06cfb","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"when test resize-confirm on NFS (KVM) using at least two"},{"line_number":10,"context_line":"compute nodes, will occur OSError when try to cleanup the"},{"line_number":11,"context_line":"backup instance directory and make instance status \"Error\"."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"One way to cleanup resize is using delay_on_retry and"},{"line_number":14,"context_line":"maximum attempts setting. Replace rmtree() because"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2FQwo%3D","line":11,"in_reply_to":"AAAATn%2F%2FQ1M%3D","updated":"2013-11-12 03:48:42.000000000","message":"Agree with all Qin Zhao\u0027s comments.","commit_id":"9d9a38328614d20d1b7e79c50b24ca19a6ad76fe"}],"nova/tests/virt/libvirt/test_libvirt.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bd77890d22552d952fa191969cfaa73944b6e6","unresolved":false,"context_lines":[{"line_number":7038,"context_line":"        def fake_os_path_exists(path):"},{"line_number":7039,"context_line":"            return True"},{"line_number":7040,"context_line":""},{"line_number":7041,"context_line":"        def fake_execute(*args, **kwargs):"},{"line_number":7042,"context_line":"            pass"},{"line_number":7043,"context_line":""},{"line_number":7044,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, fake_os_path_exists)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4K0%3D","line":7041,"updated":"2013-11-19 02:30:28.000000000","message":"Should either be asserting the args (since you\u0027re setting them specifically for this change, i.e. retry attempts), or change this to use mox/mock so you or mox can assert that the stubbed method is called.","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"752017c91effeecb35f2563a349a982bdeabb58f","unresolved":false,"context_lines":[{"line_number":7038,"context_line":"        def fake_os_path_exists(path):"},{"line_number":7039,"context_line":"            return True"},{"line_number":7040,"context_line":""},{"line_number":7041,"context_line":"        def fake_execute(*args, **kwargs):"},{"line_number":7042,"context_line":"            pass"},{"line_number":7043,"context_line":""},{"line_number":7044,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, fake_os_path_exists)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4GU%3D","line":7041,"in_reply_to":"AAAATn%2F%2B4K0%3D","updated":"2013-11-19 03:04:41.000000000","message":"will change, Matt, Thanks!","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bd77890d22552d952fa191969cfaa73944b6e6","unresolved":false,"context_lines":[{"line_number":7042,"context_line":"            pass"},{"line_number":7043,"context_line":""},{"line_number":7044,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, fake_os_path_exists)"},{"line_number":7045,"context_line":"        self.stubs.Set(utils, \u0027execute\u0027, fake_execute)"},{"line_number":7046,"context_line":""},{"line_number":7047,"context_line":"        self.mox.ReplayAll()"},{"line_number":7048,"context_line":"        self.libvirtconnection._cleanup_resize(ins_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4K8%3D","line":7045,"updated":"2013-11-19 02:30:28.000000000","message":"Hmm, so this is just using stubs, not mox, so it doesn\u0027t actually test that the stub was called, right?  Which essentially makes this change useless.","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"752017c91effeecb35f2563a349a982bdeabb58f","unresolved":false,"context_lines":[{"line_number":7042,"context_line":"            pass"},{"line_number":7043,"context_line":""},{"line_number":7044,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, fake_os_path_exists)"},{"line_number":7045,"context_line":"        self.stubs.Set(utils, \u0027execute\u0027, fake_execute)"},{"line_number":7046,"context_line":""},{"line_number":7047,"context_line":"        self.mox.ReplayAll()"},{"line_number":7048,"context_line":"        self.libvirtconnection._cleanup_resize(ins_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4GQ%3D","line":7045,"in_reply_to":"AAAATn%2F%2B4K8%3D","updated":"2013-11-19 03:04:41.000000000","message":"will change, Matt, Thanks!","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bd77890d22552d952fa191969cfaa73944b6e6","unresolved":false,"context_lines":[{"line_number":7055,"context_line":"        def fake_os_path_exists(path):"},{"line_number":7056,"context_line":"            return True"},{"line_number":7057,"context_line":""},{"line_number":7058,"context_line":"        def fake_execute(*args, **kwargs):"},{"line_number":7059,"context_line":"            pass"},{"line_number":7060,"context_line":""},{"line_number":7061,"context_line":"        def fake_undefine_domain(instance):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4Kw%3D","line":7058,"updated":"2013-11-19 02:30:28.000000000","message":"ditto","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"752017c91effeecb35f2563a349a982bdeabb58f","unresolved":false,"context_lines":[{"line_number":7055,"context_line":"        def fake_os_path_exists(path):"},{"line_number":7056,"context_line":"            return True"},{"line_number":7057,"context_line":""},{"line_number":7058,"context_line":"        def fake_execute(*args, **kwargs):"},{"line_number":7059,"context_line":"            pass"},{"line_number":7060,"context_line":""},{"line_number":7061,"context_line":"        def fake_undefine_domain(instance):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4GM%3D","line":7058,"in_reply_to":"AAAATn%2F%2B4Kw%3D","updated":"2013-11-19 03:04:41.000000000","message":"will change, Matt, Thanks!","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bd77890d22552d952fa191969cfaa73944b6e6","unresolved":false,"context_lines":[{"line_number":7068,"context_line":"            pass"},{"line_number":7069,"context_line":""},{"line_number":7070,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, fake_os_path_exists)"},{"line_number":7071,"context_line":"        self.stubs.Set(utils, \u0027execute\u0027, fake_execute)"},{"line_number":7072,"context_line":"        self.stubs.Set(self.libvirtconnection, \u0027_undefine_domain\u0027,"},{"line_number":7073,"context_line":"                       fake_undefine_domain)"},{"line_number":7074,"context_line":"        self.stubs.Set(self.libvirtconnection, \u0027unplug_vifs\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4Ks%3D","line":7071,"updated":"2013-11-19 02:30:28.000000000","message":"ditto","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"752017c91effeecb35f2563a349a982bdeabb58f","unresolved":false,"context_lines":[{"line_number":7068,"context_line":"            pass"},{"line_number":7069,"context_line":""},{"line_number":7070,"context_line":"        self.stubs.Set(os.path, \u0027exists\u0027, fake_os_path_exists)"},{"line_number":7071,"context_line":"        self.stubs.Set(utils, \u0027execute\u0027, fake_execute)"},{"line_number":7072,"context_line":"        self.stubs.Set(self.libvirtconnection, \u0027_undefine_domain\u0027,"},{"line_number":7073,"context_line":"                       fake_undefine_domain)"},{"line_number":7074,"context_line":"        self.stubs.Set(self.libvirtconnection, \u0027unplug_vifs\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4GI%3D","line":7071,"in_reply_to":"AAAATn%2F%2B4Ks%3D","updated":"2013-11-19 03:04:41.000000000","message":"will change, Matt, Thanks!","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"fb749085c4498ab370b6f6dc186584f84e0baacf","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"            # avoid deleting target unsuccessfully in first time against NFS."},{"line_number":1046,"context_line":"            # Replace rmtree() because execute() have more parameters choices"},{"line_number":1047,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1048,"context_line":"            # for the second time."},{"line_number":1049,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"},{"line_number":1050,"context_line":"                          attempts\u003d5)"},{"line_number":1051,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FUEE%3D","line":1048,"updated":"2013-11-11 06:26:04.000000000","message":"Can we possibly have this whole commented reworded for clarity?  My suggestion would be, \"# Deletion can fail over NFS, so retry the delete as required\".  I think this conveys the reason and is much shorter.","commit_id":"807948132ea80c0e562e3c473ae5012d0bfee372"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"9381f551f3b54f54264da11794783d630af970d9","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"            # avoid deleting target unsuccessfully in first time against NFS."},{"line_number":1046,"context_line":"            # Replace rmtree() because execute() have more parameters choices"},{"line_number":1047,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1048,"context_line":"            # for the second time."},{"line_number":1049,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"},{"line_number":1050,"context_line":"                          attempts\u003d5)"},{"line_number":1051,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FUBI%3D","line":1048,"in_reply_to":"AAAATn%2F%2FUEE%3D","updated":"2013-11-11 06:52:40.000000000","message":"ok, Michael, but I think I should keep last two lines for explaining why set 5, Thank you for your review, Michael.","commit_id":"807948132ea80c0e562e3c473ae5012d0bfee372"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"3e0e81fe408b1f342e96c3b10a9f2dfe5da5e226","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"    def _cleanup_resize(self, instance, network_info):"},{"line_number":1043,"context_line":"        target \u003d libvirt_utils.get_instance_path(instance) + \"_resize\""},{"line_number":1044,"context_line":"        if os.path.exists(target):"},{"line_number":1045,"context_line":"            # Deletion can fail over NFS, so retry the deletion as required."},{"line_number":1046,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1047,"context_line":"            # for the second time."},{"line_number":1048,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FQz0%3D","line":1045,"updated":"2013-11-12 03:24:55.000000000","message":"I suggest you record the bug number here, since this bug is not that easy to catch and understand.","commit_id":"9d9a38328614d20d1b7e79c50b24ca19a6ad76fe"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"aaed92ba19419f02f8f419a13aa36e14c7d6cff9","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        if os.path.exists(target):"},{"line_number":1045,"context_line":"            # Deletion can fail over NFS, so retry the deletion as required."},{"line_number":1046,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1047,"context_line":"            # for the second time. See bug 1248019 for details."},{"line_number":1048,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"},{"line_number":1049,"context_line":"                          attempts\u003d5)"},{"line_number":1050,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FGoo%3D","line":1047,"updated":"2013-11-14 11:43:01.000000000","message":"The bug doesn\u0027t really have any clear details on why this problems occurs.\n\nWhat is the actual root cause of the failure ?\n\nI\u0027d like to see a clear explanation of the cause, and an attempt to fix the root cause, before we blindly add a retry here.","commit_id":"386c4d12ce06e4083e1611a028dd059e9149456c"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"8ff79fde5df619b7d013787448ffd7e1efc29207","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        if os.path.exists(target):"},{"line_number":1045,"context_line":"            # Deletion can fail over NFS, so retry the deletion as required."},{"line_number":1046,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1047,"context_line":"            # for the second time. See bug 1248019 for details."},{"line_number":1048,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"},{"line_number":1049,"context_line":"                          attempts\u003d5)"},{"line_number":1050,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FBhM%3D","line":1047,"in_reply_to":"AAAATn%2F%2FFaY%3D","updated":"2013-11-15 14:55:02.000000000","message":"I\u0027m curious to understand what other process has these files held open. If we could ensure they are all closed before deleting that would have been ideal.\n\nThat said, I won\u0027t hold up this patch any more. There could be non-openstack related processes which temporarily opened the file for some reason, so doing a retry is robust against this.","commit_id":"386c4d12ce06e4083e1611a028dd059e9149456c"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"fc2d82feef8315a57e970ac3efda832c82af6584","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        if os.path.exists(target):"},{"line_number":1045,"context_line":"            # Deletion can fail over NFS, so retry the deletion as required."},{"line_number":1046,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1047,"context_line":"            # for the second time. See bug 1248019 for details."},{"line_number":1048,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"},{"line_number":1049,"context_line":"                          attempts\u003d5)"},{"line_number":1050,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FFaY%3D","line":1047,"in_reply_to":"AAAATn%2F%2FGoo%3D","updated":"2013-11-14 16:01:37.000000000","message":"Hi, Daniel, Sorry that I do not give the detail in bug 1248019, I had update it \nnow, you can see the root cause, and will know why I use retry, \nhttps://bugs.launchpad.net/nova/+bug/1248019, Thank you for your review, if \nyou think the explanation is not clear enough, please tell me.","commit_id":"386c4d12ce06e4083e1611a028dd059e9149456c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3bd77890d22552d952fa191969cfaa73944b6e6","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"        if os.path.exists(target):"},{"line_number":1049,"context_line":"            # Deletion can fail over NFS, so retry the deletion as required."},{"line_number":1050,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1051,"context_line":"            # for the second time. See bug 1248019 for details."},{"line_number":1052,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"},{"line_number":1053,"context_line":"                          attempts\u003d5)"},{"line_number":1054,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4LQ%3D","line":1051,"updated":"2013-11-19 02:30:28.000000000","message":"I\u0027d remove the reference to the launchpad bug.  The commit message has the bug in it and the commit message is what\u0027s in the git log history, so if someone really needs to get the history and details on this change they can do it via the git log history and go to launchpad rather than leave a reference to our current tracking system in the code.","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"e2d8a3038c7a0c5ec086d5e185f82f7091424a58","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"        if os.path.exists(target):"},{"line_number":1049,"context_line":"            # Deletion can fail over NFS, so retry the deletion as required."},{"line_number":1050,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1051,"context_line":"            # for the second time. See bug 1248019 for details."},{"line_number":1052,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"},{"line_number":1053,"context_line":"                          attempts\u003d5)"},{"line_number":1054,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B3jY%3D","line":1051,"in_reply_to":"AAAATn%2F%2B4C8%3D","updated":"2013-11-19 06:54:03.000000000","message":"agree, Thanks :)","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1c7e20d39942348cca4f379b6dfd3d48c79fe1e9","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"        if os.path.exists(target):"},{"line_number":1049,"context_line":"            # Deletion can fail over NFS, so retry the deletion as required."},{"line_number":1050,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1051,"context_line":"            # for the second time. See bug 1248019 for details."},{"line_number":1052,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"},{"line_number":1053,"context_line":"                          attempts\u003d5)"},{"line_number":1054,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4C8%3D","line":1051,"in_reply_to":"AAAATn%2F%2B4FY%3D","updated":"2013-11-19 03:21:54.000000000","message":"If they want more details, it should be in the commit message, not a reference to the launchpad bug in the code.  The commit message is what\u0027s in the git log, not launchpad.","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"752017c91effeecb35f2563a349a982bdeabb58f","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"        if os.path.exists(target):"},{"line_number":1049,"context_line":"            # Deletion can fail over NFS, so retry the deletion as required."},{"line_number":1050,"context_line":"            # Set maximum attempt as 5, most test can remove the directory"},{"line_number":1051,"context_line":"            # for the second time. See bug 1248019 for details."},{"line_number":1052,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, target, delay_on_retry\u003dTrue,"},{"line_number":1053,"context_line":"                          attempts\u003d5)"},{"line_number":1054,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2B4FY%3D","line":1051,"in_reply_to":"AAAATn%2F%2B4LQ%3D","updated":"2013-11-19 03:04:41.000000000","message":"Matt, what you said is reasonable, but in previous reviews, there are at least two persons ask me add the bug number, they think when someone want to see more details and root cause, they can find them quickly. Thanks!","commit_id":"3c48e71464dd936fe5234fdeb38bc54dfe7150cc"}]}
