)]}'
{"nova/virt/libvirt/guest.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"21aa77944e1db5b2e416a264b93c5a9345bddab8","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        else:"},{"line_number":523,"context_line":"            if params:"},{"line_number":524,"context_line":"                if (\u0027migrate_disks\u0027 in params and"},{"line_number":525,"context_line":"                    (flags \u0026 libvirt.VIR_MIGRATE_NON_SHARED_INC) !\u003d 0):"},{"line_number":526,"context_line":"                    self._domain.migrateToURI2("},{"line_number":527,"context_line":"                    destination, dxml\u003ddomain_xml,"},{"line_number":528,"context_line":"                    flags\u003dflags, bandwidth\u003dbandwidth)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_816481e5","line":525,"updated":"2016-06-06 20:10:09.000000000","message":"When I talked to danpb about this earlier today, he suggested we check the block migration flag in https://github.com/openstack/nova/blob/f5c9ebd56075f8eb04f9f0e683f85bacdcd68c38/nova/virt/libvirt/driver.py#L5868 to see if it was going to do tunneling and if so, don\u0027t pass migrate_disks to migrateToURI3.\n\nAfter looking at _live_migration_copy_disk_paths closer I see it\u0027s not just BDMs that it\u0027s processing, but it uses the bdm device name list to filter out disks from the guest, so I\u0027m not sure if we should just not return any device_names from that method if we\u0027re doing tunneling or just not the BDM ones.\n\nThat\u0027s also confused by the pre-migration check here:\n\nhttps://github.com/openstack/nova/blob/f5c9ebd56075f8eb04f9f0e683f85bacdcd68c38/nova/virt/libvirt/driver.py#L5360\n\nWhere if you have BDMs but libvirt\u003c1.2.17 it fails - the note says you can\u0027t do that in tunneled mode either, but doesn\u0027t check for it.","commit_id":"3231bb95ac822bc275aa048121364eb4a82089f7"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"5bd9cd25cb2c08913821a88de37a1d20c38ca284","unresolved":false,"context_lines":[{"line_number":523,"context_line":"            if params:"},{"line_number":524,"context_line":"                if (\u0027migrate_disks\u0027 in params and"},{"line_number":525,"context_line":"                    (flags \u0026 libvirt.VIR_MIGRATE_NON_SHARED_INC) !\u003d 0):"},{"line_number":526,"context_line":"                    self._domain.migrateToURI2("},{"line_number":527,"context_line":"                    destination, dxml\u003ddomain_xml,"},{"line_number":528,"context_line":"                    flags\u003dflags, bandwidth\u003dbandwidth)"},{"line_number":529,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_9ca4eaa6","line":526,"range":{"start_line":526,"start_character":20,"end_line":526,"end_character":46},"updated":"2016-06-06 20:40:31.000000000","message":"I start thinking, that using migrateToURI2 here is almost the same as migrateToURI3 without passing migrate_disks.","commit_id":"3231bb95ac822bc275aa048121364eb4a82089f7"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b7c752c96763a968ee6b6d3305212939165ca083","unresolved":false,"context_lines":[{"line_number":523,"context_line":"            if params:"},{"line_number":524,"context_line":"                if (\u0027migrate_disks\u0027 in params and"},{"line_number":525,"context_line":"                    (flags \u0026 libvirt.VIR_MIGRATE_NON_SHARED_INC) !\u003d 0):"},{"line_number":526,"context_line":"                    self._domain.migrateToURI2("},{"line_number":527,"context_line":"                    destination, dxml\u003ddomain_xml,"},{"line_number":528,"context_line":"                    flags\u003dflags, bandwidth\u003dbandwidth)"},{"line_number":529,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_f391c653","line":526,"range":{"start_line":526,"start_character":20,"end_line":526,"end_character":46},"in_reply_to":"7aa08908_7c081e2e","updated":"2016-06-07 08:33:14.000000000","message":"Agreed, this abandon this and focus on detecting bad configurations upfront at host init time.","commit_id":"3231bb95ac822bc275aa048121364eb4a82089f7"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"020f310580154d4dbaa91f2cd862c93c44cd4b2c","unresolved":false,"context_lines":[{"line_number":523,"context_line":"            if params:"},{"line_number":524,"context_line":"                if (\u0027migrate_disks\u0027 in params and"},{"line_number":525,"context_line":"                    (flags \u0026 libvirt.VIR_MIGRATE_NON_SHARED_INC) !\u003d 0):"},{"line_number":526,"context_line":"                    self._domain.migrateToURI2("},{"line_number":527,"context_line":"                    destination, dxml\u003ddomain_xml,"},{"line_number":528,"context_line":"                    flags\u003dflags, bandwidth\u003dbandwidth)"},{"line_number":529,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_7c081e2e","line":526,"range":{"start_line":526,"start_character":20,"end_line":526,"end_character":46},"in_reply_to":"7aa08908_9c034a42","updated":"2016-06-06 20:48:23.000000000","message":"Actually I\u0027d not to use tunneled flag rather than not passing migrate_disks:\nuse case: It would be impossible to migrate volume backed instance with config drive(even vfat) or instances with volumes if we stop passing migrate_disks.","commit_id":"3231bb95ac822bc275aa048121364eb4a82089f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cea62f4205bd97256086452d0ab3fc8df1121bf0","unresolved":false,"context_lines":[{"line_number":523,"context_line":"            if params:"},{"line_number":524,"context_line":"                if (\u0027migrate_disks\u0027 in params and"},{"line_number":525,"context_line":"                    (flags \u0026 libvirt.VIR_MIGRATE_NON_SHARED_INC) !\u003d 0):"},{"line_number":526,"context_line":"                    self._domain.migrateToURI2("},{"line_number":527,"context_line":"                    destination, dxml\u003ddomain_xml,"},{"line_number":528,"context_line":"                    flags\u003dflags, bandwidth\u003dbandwidth)"},{"line_number":529,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_9c034a42","line":526,"range":{"start_line":526,"start_character":20,"end_line":526,"end_character":46},"in_reply_to":"7aa08908_9ca4eaa6","updated":"2016-06-06 20:45:16.000000000","message":"Yeah, and it looks like it fixes the bug, according to the job results. The job failed setting up NFS.\n\nOne thing about checking the flag in _live_migration_copy_disk_paths would be we could avoid the roundtrip call to the DB to get the BDMs for the instance, so there could be a performance optimization. So basically if we\u0027re tunneling, don\u0027t get the BDMs or generate the device_names list, and if that list is empty (or None), don\u0027t set the migrate_disks entry in params.\n\nIt all gets a bit tightly-coupled, which is unfortunate.","commit_id":"3231bb95ac822bc275aa048121364eb4a82089f7"}]}
