Hi Dimitris, sorry, I got confused by the fact that you're the owner of the bug. I'll have a look at it and let you know.
Best regards, Petr On Thu, Dec 5, 2013 at 2:49 PM, Dimitris Aragiorgis <[email protected]> wrote: > * [email protected] <[email protected]> [2013-12-03 13:12:55 > +0000]: > > > Status: Accepted > > Owner: [email protected] > > Labels: Type-Defect Priority-High Milestone-Release2.8 > Component-instances > > > > New issue 633 by [email protected]: Migration of ext type > > instances fail due to physical_id missing > > http://code.google.com/p/ganeti/issues/detail?id=633 > > > > What steps will reproduce the problem? > > 1. Add a second disk in a test instance with ext disk template > > 2. Migrate the instance > > 3. Accept instance fails > > > > Target node's noded-daemon log: > > > > 2013-12-03 14:25:02,853: ganeti-noded pid=1799 ERROR Error in RPC call > > Traceback (most recent call last): > > File "/usr/share/ganeti/ganeti/server/noded.py", line 181, in > > HandleRequest > > result = (True, method(serializer.LoadJson(req.request_body))) > > File "/usr/share/ganeti/ganeti/server/noded.py", line 645, in > > perspective_accept_instance > > return backend.AcceptInstance(instance, info, target) > > File "/usr/share/ganeti/ganeti/backend.py", line 1537, in > AcceptInstance > > _GatherAndLinkBlockDevs(instance) > > File "/usr/share/ganeti/ganeti/backend.py", line 1315, in > > _GatherAndLinkBlockDevs > > device = _RecursiveFindBD(disk) > > File "/usr/share/ganeti/ganeti/backend.py", line 2112, in > _RecursiveFindBD > > return bdev.FindDevice(disk, children) > > File "/usr/share/ganeti/ganeti/bdev.py", line 3419, in FindDevice > > disk.params) > > File "/usr/share/ganeti/ganeti/bdev.py", line 2994, in __init__ > > raise ValueError("Invalid configuration data %s" % str(unique_id)) > > ValueError: Invalid configuration data None > > 2013-12-03 14:25:02,863: ganeti-noded pid=1799 INFO > > 192.168.2.2:51978 POST /accept_instance HTTP/1.1 200 > > > > > > > > What is the expected output? What do you see instead? > > > > This happens because when adding a disk in 2.8, SetDiskID() does not get > > invoked. As a result disk entries inside config.data have no physical_id. > > In case of EXT, before accepting the instance we invoke > > _GatherAndLinkBlockDevices(). This takes `instance` as an argument > > which includes disks without physical_id and thus FindDevice() > > fails. > > > > As far as I know physical_id is meant to be deprecated right? In > > future releases it will be removed from the file. So I propose > > the following fix: > > > > --- a/lib/cmdlib/instance_migration.py > > +++ b/lib/cmdlib/instance_migration.py > > @@ -709,6 +709,8 @@ class TLMigrateInstance(Tasklet): > > self._WaitUntilSync() > > > > self.feedback_fn("* preparing %s to accept the instance" % > target_node) > > + for disk in instance.disks: > > + self.cfg.SetDiskID(disk, target_node) > > result = self.rpc.call_accept_instance(target_node, > > instance, > > migration_info, > > > > > > Any comments on that? > > > > > > Any news on that? > > > > -- > > You received this message because this project is configured to send > > all issue notifications to this address. > > You may adjust your notification preferences at: > > https://code.google.com/hosting/settings > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.10 (GNU/Linux) > > iQEcBAEBAgAGBQJSoIRuAAoJEHFDHex6CBG9nWoH/3nqqhzUilvkgxEXFTY4kWaL > Jpqub1d3KzXotkG88CbiWv/yFcISDvw3/ry1z6Q3HwD5N8K5sOgbFB5Pu8pcWhEM > 8UnrmHWk7u0KPJqPTlkzb8sGkJtfFXDxk+X7Egsd17CS2ZqWq/QFyRK8NpevTwhN > 5/Xc8AaDDJHfvw6WrR2MrtTPeeJ2EKHqevlden/4ZQrVtrrxx4zczRK9pV+yHQnz > CaY1kbl4tNauyjj4w7M6Ty+ECrMt6B13ac5tfAfcN5j2Gbw20HC4Z6aH3YMddKBf > U5I497iylP8iJ8FbGcpaGtgncbNXNLgzuhMN/UFGh84kRytFrC/Rpm40z5vgKDQ= > =p81u > -----END PGP SIGNATURE----- > >
