Daniel P. Berrange wrote:
On Fri, Mar 07, 2014 at 07:49:04PM +0400, Roman Bogorodskiy wrote:
> Daniel P. Berrange wrote:
>
> > On Fri, Mar 07, 2014 at 06:15:24PM +0400, Roman Bogorodskiy wrote:
> > > Daniel P. Berrange wrote:
> > >
> > > > All those mangled messages are being printed out by libvirt client
> > > > code, and it is totally expected that log messages libvirt prints
> > > > are mangled in this way for the console.
> > > >
> > > > What's more important is what data coming from the guest looks
> > > > like.
> > >
> > > All those spaces come from the stream as well. For example, I've
added
> > > the following debugging to daemonStreamHandleRead() into
> > > daemon/stream.c:
> > >
> > > 732 ret = virStreamRecv(stream->st, buffer, bufferLen);
> > > 733 VIR_ERROR("buffer = [%s]", buffer);
> > >
> > > And it prints stuff like:
> > >
> > > 2014-03-07 13:29:34.060+0000: 34489787392: error :
> > > daemonStreamHandleRead:733 : buffer = [ File "/usr/bin/cloud
raise
> > > DataSourceNotFoundException(msg)
> > > ]
> > > 2014-03-07 13:29:34.060+0000: 34489787392: error :
> > > daemonStreamHandleRead:733 : buffer = [
> > > ]
> > > 2014-03-07 13:29:34.061+0000: 34489787392: error :
> > > daemonStreamHandleRead:733 : buffer = [
> > > ]
> > > 2014-03-07 13:29:34.061+0000: 34489787392: error :
> > > daemonStreamHandleRead:733 : buffer = [
> > > ]
> >
> > The debug logs are *always* going to be strange when you have the
> > terminal in raw mode. If you're debugging the console support you
> > really must not try to use stderr for debug logs - you'll never get
> > sane results. Set libvirt to log to a file or syslog instead.
>
> That's strange because libvirtd and virsh use different terminals for
> logging, but I've disabled stderr logging to be on the safe side.
>
> Anyway, I've conducted an experiment like you suggested:
>
> 1. run 'virsh' on linux to freebsd libvirtd, output is mangled:
>
>
http://people.freebsd.org/~novel/misc/ttyweirdness2.png
>
> 2. run 'virsh' on freebsd to linux libvirtd, output is good:
>
>
http://people.freebsd.org/~novel/misc/ttyweirdness3.png
>
> Guest uses the same image and the same domain xml.
>
> Also, I removed all my custom debug stuff from virsh except mutex lock
> (as it doesn't work otherwise). So the problem seem to be on the
> libvirtd side...
Agreed, it is either libvirtd or bhyve that's the source of the
mangling then.
Very unlikely that it's bhyve, as I'm testing with qemu (plan to get to
bhyve when I'll be able to get it fixed for qemu).
And considering that 'cu' works properly, it's most likely the daemon.
I'll continue looking in this direction. Thanks for the pointer, that
helped to narrow down the problem indeed.
Roman Bogorodskiy