[libvirt] virsh migrate: sometimes command line cannot exit until manually press "ENTER" key
Chun Yan Liu
cyliu at suse.com
Fri Aug 8 08:26:47 UTC 2014
>>> On 8/8/2014 at 12:18 AM, in message
<CAAfHSJvP1P20kBFD9ZgYy=0JVvG5oiS0eVCfGZc+k39=EharkQ at mail.gmail.com>,
Shivaprasad bhat <shivaprasadbhat at gmail.com> wrote:
> On Thu, Aug 7, 2014 at 11:02 AM, Chun Yan Liu <cyliu at suse.com> wrote:
> > Hi, List,
> >
> > Do you meet the same problem? Host is kvm, doing: (e.g.)
> > #virsh migrate sles11 qemu+ssh://147.2.207.55/system --live --unsafe
> > password:
> > Sometimes, VM is already running on the target host and disappears
> > from source host, but the command line still hangs there, if pressing
> > "ENTER", it will exit.
> >
> > I debugged the code, but found the result is weird. The code hangs at
> > tools/virsh-domain.c -> cmdMigrate ->vshWatchJob->poll():
> > poll() is trying to select pipe_fd, which is used to receive message from
> > doMigrate thread. In debugging, found that doMigrate finishes and at
> > the end it does call safewrite() to write the retval ('0' or '1') to
> pipe_fd,
> > and the write is completed. But cmdMigrate poll() cannot get the event.
> > Then after pressing "ENTER" key, poll() can get the event and select
> > pipe_fd, then command line can exit.
> >
> > Any ideas about the possible reason?
>
> It is because, the authentication thread is independently waiting for the
> password on virsh. I see that the virWatchJob interferes with authentication
> thread and the password is never taken successfully. The virWatchJob
> probably needs to wait till the authentication thread completes taking the
> password after which it should start watching the job.
Agree. Although in my testing password can be taken successfully, and I
don't know how to explain why pressing "ENTER" then poll() can get
the pipe_fd event, I do think both authentication thread and main process
uses stdin might have some bad affect.
I'd like to adjust the code a little to move the authentication before poll().
Thanks!
> Moreover, I see
> that --p2p
> migration doesnt work at all when auto login is not configured.
>
> >
> > Thanks,
> > Chunyan
> >
> >
> > --
> > libvir-list mailing list
> > libvir-list at redhat.com
> > https://www.redhat.com/mailman/listinfo/libvir-list
>
> Thanks,
> Shiva
>
>
More information about the libvir-list
mailing list