Index: exec/totempg.c =================================================================== --- exec/totempg.c (revision 1997) +++ exec/totempg.c (revision 1998) @@ -305,8 +305,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, i, (void *)&instance);