Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
I have changed prepare_to_wait : list_empty(&wait->task_list) ===> list_empty(&q->task_list) And it seems ok ??? ---------------------- Forwarded by Benoit ROPARTZ/FR/ALCATEL on 23/06/2004 17:32 --------------------------- Benoit ROPARTZ/FR/ALCATEL at ALCATEL@linbit.com on 23/06/2004 17:11:19 Sent by: drbd-user-admin at linbit.com To: drbd-user <drbd-user at linbit.com> cc: Subject: Re: [DRBD-user] Crash during synchronisation when RATE >= 1024 ??? 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 _______________________________________________ drbd-user mailing list drbd-user at lists.linbit.com http://lists.linbit.com/mailman/listinfo/drbd-user