Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
I used now 0.7-pre8 and i have got the seem problem.....(Linux 2.4)
I have analysed the code and i have found a bug in drbd_get_ee() function
(SyncSource) :
- DEFINE_WAIT(wait);
==> wait.task=current;
==> wait.task_list={NULL,NULL}
Second "list_empty(&mdev->free_ee)" condition is TRUE so DRBD call
prepare_to_wait() function :
- prepare_to_wait
==> condition "list_empty(&wait->task_list)" is FALSE
(task_list.next=prev=NULL) :
/**
* list_empty - tests whether a list is empty
* @head: the list to test.
*/
static inline int list_empty(struct list_head *head)
{
return head->next == head;
}
==> DRBD doesn't call __add_wait_queue(q, wait) !!!
- DRBD execute several code lines and finally execute finish_wait function
() :
==> call list_del_init(&wait->task_list) :
static inline void list_del_init(struct list_head *entry)
{
__list_del(entry->prev, entry->next);==> NULL, NULL
INIT_LIST_HEAD(entry);
}
static inline void __list_del(struct list_head *prev, struct list_head
*next)
{
next->prev = prev;
prev->next = next;
}
==> CRASH because next and prev = NULL !!!!!
Are you agree with me ??? Why this trouble isn't find with 2.6.x Linux
Version ????
Lars Ellenberg <Lars.Ellenberg at linbit.com>@linbit.com on 17/06/2004
12:07:08
Please respond to drbd-user <drbd-user at linbit.com>
Sent by: drbd-user-admin at linbit.com
To: Benoit ROPARTZ/FR/ALCATEL at ALCATEL
cc: drbd-user <drbd-user at linbit.com>
Subject: Re: [DRBD-user] Crash during synchronisation when RATE >= 1024
???
/ 2004-06-17 11:18:08 +0200
\ Benoit.Ropartz at alcatel.fr:
> Hello,
>
> OK i've used ksymoops :
>
> >>NIP; d104ce50 <[drbd]finish_wait+40/90> <=====
>
> >>GPR1; caa19ef0 <_end+a783308/10dac418>
> >>GPR2; caa18000 <_end+a781418/10dac418>
> >>GPR6; caa1b154 <_end+a78456c/10dac418>
> >>GPR7; caa1b040 <_end+a784458/10dac418>
> >>GPR11; caa19f20 <_end+a783338/10dac418>
> >>GPR23; c0005ed4 <ret_from_except+0/34>
> >>GPR24; c0005bc0 <DoSyscall+0/5c>
> >>GPR28; c01f0000 <Symbios_trailer.1+0/8>
> >>GPR29; caa19f18 <_end+a783330/10dac418>
> >>GPR30; cfcfa420 <_end+fa63838/10dac418>
> >>GPR31; cfcfa000 <_end+fa63418/10dac418>
>
> Trace; d104cb50 <[drbd]drbd_alloc_ee+40/78>
> Trace; d104d034 <[drbd]drbd_get_ee+194/20c>
> Trace; d104e0f8 <[drbd]read_in_block+30/110>
> Trace; d104ec5c <[drbd]receive_Data+b8/360>
> Trace; d10500a8 <[drbd]drbdd+70/114>
> Trace; d105077c <[drbd]drbdd_init+68/178>
> Trace; d1045c6c <[drbd]drbd_thread_setup+a4/124>
> Trace; c00088d8 <arch_kernel_thread+2c/38>
>
>
> 6 warnings issued. Results may not be reliable.
>
> Finally DRBD crash each time DRBD receive a block !!! Unfortunately i
> cannot interpret
> the ksymoops results ???
try again with cvs of today, please.
Lars Ellenberg
_______________________________________________
drbd-user mailing list
drbd-user at lists.linbit.com
http://lists.linbit.com/mailman/listinfo/drbd-user