This has side effect of clearing the assembly buffer the next time it is
referenced from the free list. This fixes a defect that stops forward
processing of the message streams because sync fails to finish when
recieving a sync message from a restarted processor because it throws
away the message.
Index: totempg.c
===================================================================
--- totempg.c (revision 2283)
+++ totempg.c (working copy)
@@ -326,8 +326,19 @@
{
int i;
struct totempg_group_instance *instance;
+ struct assembly *assembly;
unsigned int res;
+ /*
+ * For every leaving processor, add to free list
+ * This also has the side effect of clearing out the dataset
+ * In the leaving processor's assembly buffer.
+ */
+ for (i = 0; i < left_list_entries; i++) {
+ assembly = assembly_ref (left_list[i]);
+ list_del (&assembly->list);
+ list_add (&assembly->list, &assembly_list_free);
+ }
for (i = 0; i <= totempg_max_handle; i++) {
res = hdb_handle_get (&totempg_groups_instance_database,
hdb_nocheck_convert (i), (void *)&instance);
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais