good for merge regards -steve
On Thu, 2009-10-29 at 18:16 +0100, Jan Friesse wrote: > Reworked patch. > > Regards, > Honza > > Steven Dake wrote: > > On Tue, 2009-10-27 at 18:42 -0500, Ryan O'Hara wrote: > >> On Tue, Oct 27, 2009 at 06:18:44PM +0100, Jan Friesse wrote: > >>> See patch. I hope this will fix > >>> https://bugzilla.redhat.com/show_bug.cgi?id=525280. > >>> > >>> Regards, > >>> Honza > >>> > >> Do we really need SORT_QUEUE_ITEM_MAXIOVS? Perhaps using "MAXIOVS + 1" > >> in the EVT code is sufficient. > >> > > > > My general response to this is that if we are running into the MAXIOVS > > constraint on the data structure, increasing MAXIOVS by 1 is not going > > to solve the problem (although it may hide this fault condition). > > > > The use of an extra define as you point out is unnecessary. > > > > Regards > > -steve > > > >> Ryan > >> > >> > >>> diff --git a/branches/whitetank/exec/totemsrp.c > >>> b/branches/whitetank/exec/totemsrp.c > >>> index c11a552..c5a74e8 100644 > >>> --- a/branches/whitetank/exec/totemsrp.c > >>> +++ b/branches/whitetank/exec/totemsrp.c > >>> @@ -87,6 +87,7 @@ > >>> #define RETRANS_MESSAGE_QUEUE_SIZE_MAX 500 /* allow 500 > >>> messages to be queued */ > >>> #define RECEIVED_MESSAGE_QUEUE_SIZE_MAX 500 /* allow 500 > >>> messages to be queued */ > >>> #define MAXIOVS 5 > >>> +#define SORT_QUEUE_ITEM_MAXIOVS MAXIOVS + 1 > >>> #define RETRANSMIT_ENTRIES_MAX 30 > >>> #define TOKEN_SIZE_MAX 64000 /* bytes */ > >>> > >>> @@ -278,7 +279,7 @@ struct message_item { > >>> }; > >>> > >>> struct sort_queue_item { > >>> - struct iovec iovec[MAXIOVS]; > >>> + struct iovec iovec[SORT_QUEUE_ITEM_MAXIOVS]; > >>> int iov_len; > >>> }; > >>> > >>> @@ -1916,7 +1917,7 @@ static void memb_state_recovery_enter ( > >>> strcat (is_originated, seqno_string_hex); > >>> sort_queue_item = ptr; > >>> assert (sort_queue_item->iov_len > 0); > >>> - assert (sort_queue_item->iov_len <= MAXIOVS); > >>> + assert (sort_queue_item->iov_len <= SORT_QUEUE_ITEM_MAXIOVS); > >>> messages_originated++; > >>> memset (&message_item, 0, sizeof (struct message_item)); > >>> // TODO LEAK > >>> _______________________________________________ > >>> Openais mailing list > >>> [email protected] > >>> https://lists.linux-foundation.org/mailman/listinfo/openais > >> _______________________________________________ > >> Openais mailing list > >> [email protected] > >> https://lists.linux-foundation.org/mailman/listinfo/openais > > > > plain text document attachment > (whitetank-totemsrp-fix-orf_token_mcast-take2.patch) > diff --git a/branches/whitetank/exec/totemsrp.c > b/branches/whitetank/exec/totemsrp.c > index c11a552..1cd2099 100644 > --- a/branches/whitetank/exec/totemsrp.c > +++ b/branches/whitetank/exec/totemsrp.c > @@ -86,7 +86,7 @@ > #define QUEUE_RTR_ITEMS_SIZE_MAX 256 /* allow 256 retransmit > items */ > #define RETRANS_MESSAGE_QUEUE_SIZE_MAX 500 /* allow 500 > messages to be queued */ > #define RECEIVED_MESSAGE_QUEUE_SIZE_MAX 500 /* allow 500 > messages to be queued */ > -#define MAXIOVS 5 > +#define MAXIOVS 10 > #define RETRANSMIT_ENTRIES_MAX 30 > #define TOKEN_SIZE_MAX 64000 /* bytes */ > > @@ -2030,6 +2030,8 @@ int totemsrp_mcast ( > message_item.mcast->guarantee = guarantee; > srp_addr_copy (&message_item.mcast->system_from, &instance->my_id); > > + assert (iov_len <= MAXIOVS); > + > for (i = 0; i < iov_len; i++) { > // TODO LEAK > message_item.iovec[i].iov_base = malloc (iovec[i].iov_len); > @@ -2276,6 +2278,7 @@ static int orf_token_mcast ( > message_item->mcast->seq = ++token->seq; > message_item->mcast->this_seqno = instance->global_seqno++; > > + assert (message_item->iov_len < MAXIOVS); > /* > * Build IO vector > */ > @@ -2292,8 +2295,6 @@ static int orf_token_mcast ( > > sort_queue_item.iov_len = message_item->iov_len + 1; > > - assert (sort_queue_item.iov_len < 16); > - > /* > * Add message to retransmit queue > */ _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
