On Thu, Jun 10, 2010 at 08:57:15PM +0300, Emre Erenoglu wrote:
On Thu, Jun 10, 2010 at 5:02 PM, Matthias Bolte <
matthias.bolte(a)googlemail.com> wrote:
> 2010/6/10 Emre Erenoglu <erenoglu(a)gmail.com>:
> The initscript explicitly starts the one in /usr/sbin. If you just
> start libvirtd manually without an absolute path then you'll start the
> one in /usr/local/sbin. This might explain why you cannot reproduce
> the segfault manually, but it doesn't explain why the segfault
> happens.
>
There's no other installation of libvirt in the system. I can also reproduce
the same thing in all Pardus machines, so I believe it's something in
libvirt not doing well with something else in our service init mechanisms.
I guess I'd put money on some environment variable causing trouble.
It could be a *missing* environment variable that we expect to always
be set, or something like that
> >> Could you provide a GDB backtrace of the segfault? The
syslog entry only
> >> says that it crashed in libc, that's not enough information to
> >> debug the segfault.
> >
> > Unfortunately, I can't find a related core file in the system. In fact,
> core
> > file is not generated. I'll also try to fix this out and come back to the
> > list.
> >
>
> Getting a backtrace would be simpler if you could reproduce the
> problem manually. In that case you could just start libvirtd in GDB.
> But getting a backtrace from a coredump will work too.
>
I can't reproduce the segfault when I run it manually. It only happens when
it's run from this python script. I will try to initialize gdb inside the
script and connect remotely to the gdb session, but it's getting a bit over
my debugging capabilities :) For example, I don't know how to assign the
symbols and source code etc from the package build directory to gdb.
Try creating a wrapper script, eg
mv /usr/sbin/libvirtd /usr/sbin/libvirtd.real
cat > /usr/sbin/libvirtd <<EOF
#!/bin/sh
cd /tmp
ulimited -c unlimited
exec /usr/sbin/libvirtd.real
EOF
chmod +x /usr/sbin/libvirtd
That will hopefully give you a core dump in /tmp you can get get a
stack trace from
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://deltacloud.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|