[Libguestfs] supermin init segfaults when kernel has large modules

Richard W.M. Jones rjones at redhat.com
Fri May 27 12:54:07 UTC 2016


On Fri, May 27, 2016 at 08:52:16AM -0400, Luiz Capitulino wrote:
> On Fri, 27 May 2016 11:10:33 +0100
> "Richard W.M. Jones" <rjones at redhat.com> wrote:
> 
> > Continuing the discussion from:
> > https://bugzilla.redhat.com/show_bug.cgi?id=1339691#c17
> > 
> > [Luiz: There's no need to subscribe to the mailing list, once I've
> > moderated your first message the others will go through.]
> > 
> > > IMO, supermin should use the kernel the host is running as a hint and
> > > try that one first. This shouldn't be hard to do.
> > >
> > > This BZ should be enough evidence that picking up the highest numbered
> > > kernel is not a good design decision. My kernel was a test kernel with
> > > custom patches, I was just lucky it didn't blow at boot.  
> > 
> > What we really want is to pick a kernel that will definitely boot on
> > qemu.  It's not clear this is always going to be either the highest
> > numbered kernel (for reasons you outline) nor the running kernel
> > (because the host kernel may not include virtio drivers - a problem on
> > Ubuntu sometimes because it has special virt kernels).
> > 
> > This is a tough problem, but we could do better than we are doing now.
> 
> Yeah, it's tougher than I thought. What I want is to give users the
> best possible experience with libguestfs. I don't want to add problems
> to working code.
> 
> Here's one idea in a horrible pseudo-language I have just invented:
> 
> kernel_is_good()
> {
>     if (required drivers in /lib/modules)
>         return true;
> 
>     /* kernel configured without modules? */
>     if (required drivers in config file)
>        return true;
> 
>     return false;
> }
> 
> for each kernel in running-kernel highest-numbered next-highest-numbered
>    if (kernel_is_good $kernel)
>       return $kernel;
> 
> This starts from the most likely to work: the running kernel with
> drivers in /lib/modules. If this is not good enough, it keeps
> searching.
> 
> If everything fails, we have two options:
> 
>  1. Print an error message explaining how to use the env
>     variables to use a kernel of your choosing
> 
>  2. Fall back to the highest-numbered kernel and cross fingers,
>     although it's very likely it will fail

Yup, something like this would be a marked improvement on
what we're doing now.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/




More information about the Libguestfs mailing list