Re: Kernel BUG() triggerred by Tux

From: Marek Habersack
Date: Mon Sep 20 2004 - 07:09:19 EST


On Fri, Sep 17, 2004 at 12:09:38AM +0200, Herbert Poetzl scribbled:
> On Wed, Sep 15, 2004 at 08:52:30PM +0200, Marek Habersack wrote:
> > Hello,
> >
> > I realize that this question might be out of topic for this list, but
> > since I've already tried to get help from the Tux mailing list and had no
> > response, I'm hoping I will find some guidance here. The bug can be
> > triggerred very easily by installing and using the demo4.c module shipped
> > with the tux userland (tested with the 3 last versions of the Tux patch for
> > both 2.4 and the 2.6 kernels). BUG() gets called when the request is
> > redirected by Tux to the userland server and _after_ the latter handles the
> > connection and delivers the content to the browser. Here's the message:
> >
> > Sep 15 12:39:30 quantum kernel: ------------[ cut here ]------------
> > Sep 15 12:39:30 quantum kernel: kernel BUG at fs/inode.c:1098!
> ~~~~~~~~~~~~~~~
> check what's at this location in your kernel source
> this will probably provide information what went
> wrong there ...
That was the first thing I did, here's the code:

if (inode->i_state & I_CLEAR)
BUG();

And the inode of the file tux is trying to close is indeed cleared before.
Tux's tux_close() routine implements basically what sys_close does and the
error happens when filp_close calls fput on the file structure passed from
tux_close. Replacing the tux version of sys_close with a call to the latter
gives the same effect, so the error is either before the code or after that,
but I'm still quite lost in all the filesystem code...

thanks for help,

marek

Attachment: signature.asc
Description: Digital signature