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-----
>
>

Reply via email to