[DRBD-user] disconnecting hangs after ko-count failure

Walter Haidinger walter.haidinger at gmx.at
Fri Feb 8 10:50:39 CET 2008

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


> > > then do
> > >   cd drbd-8.0.8/drbd
> > >   make KDIR=/usr/src/linux-*/bla/blub EXTRA_CFLAGS=-g
> > > and on the resulting drbd.ko, do
> > >   gdb --se=drbd.ko -ex 'list *(drbd_disconnect+0x1a6 -10)' -ex 'list
> > > *(drbd_disconnect+0x1a6)' -ex quit
> > 
> you don't need to downgrade,
> you only need to build that module with the "-g" flag,
> and do the above gdb magic.
> then I know which code lines to look at :)

Oh yes, you're just using the debug info of the _locally_ built module!
Below is the gdb output, hope that helps. If you need anything else for debugging, just let me know.

Walter

.../drbd/drbd-8.0.8/drbd #gdb --se=drbd.ko -ex 'list *(drbd_disconnect+0x1a6 -10)' -ex 'list *(drbd_disconnect+0x1a6)' -ex quit
GNU gdb 6.6.50.20070726-cvs
Copyright (C) 2007 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-suse-linux"...
Using host libthread_db library "/lib/libthread_db.so.1".
0x83cc is in drbd_disconnect (/usr/local/src/kernel/drbd/drbd-8.0.8/drbd/drbd_receiver.c:2757).
2752             * w_make_resync_request etc. which may still be on the worker queue
2753             * to be "canceled" */
2754            set_bit(WORK_PENDING,&mdev->flags);
2755            prev_work_done.cb = w_prev_work_done;
2756            drbd_queue_work(&mdev->data.work,&prev_work_done);
2757            wait_event(mdev->misc_wait, !test_bit(WORK_PENDING,&mdev->flags));
2758
2759            if ( mdev->p_uuid ) {
2760                    kfree(mdev->p_uuid);
2761                    mdev->p_uuid = NULL;
0x83d6 is in drbd_disconnect (/usr/local/src/kernel/drbd/drbd-8.0.8/drbd/drbd_receiver.c:2757).
2752             * w_make_resync_request etc. which may still be on the worker queue
2753             * to be "canceled" */
2754            set_bit(WORK_PENDING,&mdev->flags);
2755            prev_work_done.cb = w_prev_work_done;
2756            drbd_queue_work(&mdev->data.work,&prev_work_done);
2757            wait_event(mdev->misc_wait, !test_bit(WORK_PENDING,&mdev->flags));
2758
2759            if ( mdev->p_uuid ) {
2760                    kfree(mdev->p_uuid);
2761                    mdev->p_uuid = NULL;



-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger



More information about the drbd-user mailing list