)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"fb65018c268bf93a880b41354d2e51eec7b65b86","unresolved":false,"context_lines":[{"line_number":5586,"context_line":"                    if (n % 60) \u003d\u003d 0:"},{"line_number":5587,"context_line":"                        lg \u003d LOG.info"},{"line_number":5588,"context_line":""},{"line_number":5589,"context_line":"                    lg(_LI(\"Migration running for %(secs)d secs, \""},{"line_number":5590,"context_line":"                           \"memory %(remaining)d%% remaining; \""},{"line_number":5591,"context_line":"                           \"(bytes processed\u003d%(processed_memory)d, \""},{"line_number":5592,"context_line":"                           \"remaining\u003d%(remaining_memory)d, \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_2fb56730","line":5589,"updated":"2015-04-08 03:20:43.000000000","message":"When (n % 60) !\u003d 0, lg \u003d\u003d LOG.debug, so \u0027_LI\u0027 prefix is not suitable. It maybe not related with the bug, but if you need rebase, please fix it by the way.","commit_id":"21058a45245d42de4091c5cba4619eac7ed73062"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"c9a0740b111e1aa523c492760b8983e3ee990b49","unresolved":false,"context_lines":[{"line_number":5586,"context_line":"                    if (n % 60) \u003d\u003d 0:"},{"line_number":5587,"context_line":"                        lg \u003d LOG.info"},{"line_number":5588,"context_line":""},{"line_number":5589,"context_line":"                    lg(_LI(\"Migration running for %(secs)d secs, \""},{"line_number":5590,"context_line":"                           \"memory %(remaining)d%% remaining; \""},{"line_number":5591,"context_line":"                           \"(bytes processed\u003d%(processed_memory)d, \""},{"line_number":5592,"context_line":"                           \"remaining\u003d%(remaining_memory)d, \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_6f3b6f39","line":5589,"in_reply_to":"9aa53dc9_2fb56730","updated":"2015-04-08 04:16:15.000000000","message":"hi Rui,\nthanks for the reviewing.\nwhy you think \u0027_LI\u0027 is not suitable ? not working ?\nI tested it works without any exception.\n\nps: we don\u0027t need to care about the log marker if we using LOG.debug.","commit_id":"21058a45245d42de4091c5cba4619eac7ed73062"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"07edf2c3f4460479156bb3ecb47acc7c9855020e","unresolved":false,"context_lines":[{"line_number":5586,"context_line":"                    if (n % 60) \u003d\u003d 0:"},{"line_number":5587,"context_line":"                        lg \u003d LOG.info"},{"line_number":5588,"context_line":""},{"line_number":5589,"context_line":"                    lg(_LI(\"Migration running for %(secs)d secs, \""},{"line_number":5590,"context_line":"                           \"memory %(remaining)d%% remaining; \""},{"line_number":5591,"context_line":"                           \"(bytes processed\u003d%(processed_memory)d, \""},{"line_number":5592,"context_line":"                           \"remaining\u003d%(remaining_memory)d, \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_b8abfb88","line":5589,"in_reply_to":"9aa53dc9_6f3b6f39","updated":"2015-04-08 06:49:38.000000000","message":"We don\u0027t need to translate for debug level log.\n\nSee note:\n\nhttp://docs.openstack.org/developer/oslo.i18n/guidelines.html#log-translation","commit_id":"21058a45245d42de4091c5cba4619eac7ed73062"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"18c8e4dbda0b435e3c2cb5959cec9aef26007591","unresolved":false,"context_lines":[{"line_number":5586,"context_line":"                    if (n % 60) \u003d\u003d 0:"},{"line_number":5587,"context_line":"                        lg \u003d LOG.info"},{"line_number":5588,"context_line":""},{"line_number":5589,"context_line":"                    lg(_LI(\"Migration running for %(secs)d secs, \""},{"line_number":5590,"context_line":"                           \"memory %(remaining)d%% remaining; \""},{"line_number":5591,"context_line":"                           \"(bytes processed\u003d%(processed_memory)d, \""},{"line_number":5592,"context_line":"                           \"remaining\u003d%(remaining_memory)d, \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_f812a3b3","line":5589,"in_reply_to":"9aa53dc9_b8abfb88","updated":"2015-04-08 07:02:28.000000000","message":"Perhaps we can fix this in an other patch, also I don\u0027t think it is a big deal.","commit_id":"21058a45245d42de4091c5cba4619eac7ed73062"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"cde37ba4a00b72d6fee3241bd04d5658163e6b38","unresolved":false,"context_lines":[{"line_number":5586,"context_line":"                    if (n % 60) \u003d\u003d 0:"},{"line_number":5587,"context_line":"                        lg \u003d LOG.info"},{"line_number":5588,"context_line":""},{"line_number":5589,"context_line":"                    lg(_LI(\"Migration running for %(secs)d secs, \""},{"line_number":5590,"context_line":"                           \"memory %(remaining)d%% remaining; \""},{"line_number":5591,"context_line":"                           \"(bytes processed\u003d%(processed_memory)d, \""},{"line_number":5592,"context_line":"                           \"remaining\u003d%(remaining_memory)d, \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_7e78bbc4","line":5589,"in_reply_to":"9aa53dc9_b8abfb88","updated":"2015-04-08 08:11:38.000000000","message":"yes, I got you.\nI notice this when I write this patch, but it is okay that we add it into LOG.debug()\nI think it is because the previous patch writer is lazy to adding check..\n\nas sahid said, it is not a big deal, since it will not seen by user/admin, only for developer usage.\n\nwe can doing it as\nlg \u003d LOG.debug\nlg_marker \u003d  _\n\nif (n % 60) \u003d\u003d 0:\n    lg \u003d LOG.info\n    lg_marker \u003d _LI\n\nlg(lg_marker(\"Migration running for %(secs)d secs, \"\n\nany way , I will submit if in another patch.","commit_id":"21058a45245d42de4091c5cba4619eac7ed73062"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f249131334b2616e996d238fc7d41a141874bea3","unresolved":false,"context_lines":[{"line_number":5592,"context_line":"                           \"remaining\u003d%(remaining_memory)d, \""},{"line_number":5593,"context_line":"                           \"total\u003d%(total_memory)d)\"),"},{"line_number":5594,"context_line":"                       {\"secs\": n / 2, \"remaining\": remaining,"},{"line_number":5595,"context_line":"                        \"processed_memory\": info.memory_processed,"},{"line_number":5596,"context_line":"                        \"remaining_memory\": info.memory_remaining,"},{"line_number":5597,"context_line":"                        \"total_memory\": info.memory_total}, instance\u003dinstance)"},{"line_number":5598,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_78d21302","line":5595,"updated":"2015-04-08 06:58:30.000000000","message":"So you change processed_memory, remaining_memory and total_memory because remaining is now used to compute the process","commit_id":"21058a45245d42de4091c5cba4619eac7ed73062"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"cde37ba4a00b72d6fee3241bd04d5658163e6b38","unresolved":false,"context_lines":[{"line_number":5592,"context_line":"                           \"remaining\u003d%(remaining_memory)d, \""},{"line_number":5593,"context_line":"                           \"total\u003d%(total_memory)d)\"),"},{"line_number":5594,"context_line":"                       {\"secs\": n / 2, \"remaining\": remaining,"},{"line_number":5595,"context_line":"                        \"processed_memory\": info.memory_processed,"},{"line_number":5596,"context_line":"                        \"remaining_memory\": info.memory_remaining,"},{"line_number":5597,"context_line":"                        \"total_memory\": info.memory_total}, instance\u003dinstance)"},{"line_number":5598,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_3e9473e0","line":5595,"in_reply_to":"9aa53dc9_78d21302","updated":"2015-04-08 08:11:38.000000000","message":"yeah, right. but s/process/progress","commit_id":"21058a45245d42de4091c5cba4619eac7ed73062"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"5411c6ff2ae3477c58e8546d383faf0592f5134a","unresolved":false,"context_lines":[{"line_number":5575,"context_line":"                    # transfer stats in the progress too, but it"},{"line_number":5576,"context_line":"                    # might make memory info more obscure as large"},{"line_number":5577,"context_line":"                    # disk sizes might dwarf memory size"},{"line_number":5578,"context_line":"                    remaining \u003d 100"},{"line_number":5579,"context_line":"                    if info.memory_total !\u003d 0:"},{"line_number":5580,"context_line":"                        remaining \u003d round(info.memory_remaining *"},{"line_number":5581,"context_line":"                                          100 / info.memory_total)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_46f2db70","line":5578,"updated":"2015-05-01 11:02:07.000000000","message":"Hi, please can you explain how memory_total can be 0?","commit_id":"3946cfd900b18917fccdc7330bc4f070d7abd81d"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"c547c305fc4c73ef8872a4f993ec40e9d1b467a2","unresolved":false,"context_lines":[{"line_number":5575,"context_line":"                    # transfer stats in the progress too, but it"},{"line_number":5576,"context_line":"                    # might make memory info more obscure as large"},{"line_number":5577,"context_line":"                    # disk sizes might dwarf memory size"},{"line_number":5578,"context_line":"                    remaining \u003d 100"},{"line_number":5579,"context_line":"                    if info.memory_total !\u003d 0:"},{"line_number":5580,"context_line":"                        remaining \u003d round(info.memory_remaining *"},{"line_number":5581,"context_line":"                                          100 / info.memory_total)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_d9fa4cbd","line":5578,"in_reply_to":"3acd31a7_46f2db70","updated":"2015-05-01 11:49:00.000000000","message":"I think this would have to be a workaround for a libvirt bug. In my testing, the value of memory_total is always equivalent to the total memory of the VM which shouldn\u0027t be zero. This check was added in I6fcbfa31a79c7808c861bb3a84b56bd096882004 so I\u0027ve added the author of that patch (Dan Berrange) to this review for comment.","commit_id":"3946cfd900b18917fccdc7330bc4f070d7abd81d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"db36faa701179b5642a6b5ebe6d4602b49a6fc84","unresolved":false,"context_lines":[{"line_number":5575,"context_line":"                    # transfer stats in the progress too, but it"},{"line_number":5576,"context_line":"                    # might make memory info more obscure as large"},{"line_number":5577,"context_line":"                    # disk sizes might dwarf memory size"},{"line_number":5578,"context_line":"                    remaining \u003d 100"},{"line_number":5579,"context_line":"                    if info.memory_total !\u003d 0:"},{"line_number":5580,"context_line":"                        remaining \u003d round(info.memory_remaining *"},{"line_number":5581,"context_line":"                                          100 / info.memory_total)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_9904d4c0","line":5578,"in_reply_to":"3acd31a7_46f2db70","updated":"2015-05-01 11:49:33.000000000","message":"I\u0027m guessing if the migration API call has been made, but libvirt is still in the setup phase,  so QEMU hasn\u0027t actually started transferring data yet.","commit_id":"3946cfd900b18917fccdc7330bc4f070d7abd81d"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"56a94b2d54dbe571235a6131619269884f65f2a6","unresolved":false,"context_lines":[{"line_number":5575,"context_line":"                    # transfer stats in the progress too, but it"},{"line_number":5576,"context_line":"                    # might make memory info more obscure as large"},{"line_number":5577,"context_line":"                    # disk sizes might dwarf memory size"},{"line_number":5578,"context_line":"                    remaining \u003d 100"},{"line_number":5579,"context_line":"                    if info.memory_total !\u003d 0:"},{"line_number":5580,"context_line":"                        remaining \u003d round(info.memory_remaining *"},{"line_number":5581,"context_line":"                                          100 / info.memory_total)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_b9e31005","line":5578,"in_reply_to":"3acd31a7_9904d4c0","updated":"2015-05-01 11:58:55.000000000","message":"This call is on the source node - I would have thought libvirt knows immediately what memory_total is, even before any transfer is started.\n\nAnyway we have evidence in the bug report that it does happen, and this patch is a sensible workaround so +1.","commit_id":"3946cfd900b18917fccdc7330bc4f070d7abd81d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"4d12ece641da2ebaef56d0316ab41f249330f02e","unresolved":false,"context_lines":[{"line_number":5575,"context_line":"                    # transfer stats in the progress too, but it"},{"line_number":5576,"context_line":"                    # might make memory info more obscure as large"},{"line_number":5577,"context_line":"                    # disk sizes might dwarf memory size"},{"line_number":5578,"context_line":"                    remaining \u003d 100"},{"line_number":5579,"context_line":"                    if info.memory_total !\u003d 0:"},{"line_number":5580,"context_line":"                        remaining \u003d round(info.memory_remaining *"},{"line_number":5581,"context_line":"                                          100 / info.memory_total)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_bce3fe04","line":5578,"in_reply_to":"3acd31a7_b9e31005","updated":"2015-05-01 12:57:52.000000000","message":"It doesn\u0027t quite work that way - libvirt doesn\u0027t track this - it just queries QEMU for the info. So if libvirt hasn\u0027t told QEMU to start migration yet, QEMU is going to report all zeros.","commit_id":"3946cfd900b18917fccdc7330bc4f070d7abd81d"}]}
