[Linux-cluster] GNBD: interrupt bug.

Andrew Warfield andrew.warfield at gmail.com
Wed Nov 10 16:22:58 UTC 2004


I seem to have found a bug in GNBD that I'm wondering if anyone else
has noticed.  On a Linux 2.6.9 host, mounting a remote GNBD partition,
i am hitting the WARN_ON in linux's local_bh_enable()
(kernel/softirq.c:141).  This results in repeated stack dumps,
effectively locking up the host.

After a bit of looking, it would appear that do_gnbd_request() in
gnbd.c expects to be called with interrupts disabled.  Unfortunately,
the entry through generic_unplug_device does not disable interrupts
first, and so the gnbd code is disagreeing.  The specific code in
gnbd.c that is causing problems is:

   spin_unlock_irq(q->queue_lock);
   ... 
   spin_lock_irq(q->queue_lock);

I'm planning to look at this a bit more tonight, but thought I'd
quickly check if anyone had initial insight.  I'm not yet sure if the
bug is on the Linux or the gnbd side here.

cheers,
a.




More information about the Linux-cluster mailing list