From 59431ed6c77cfe26a8acea73d314f1ead2902578 Mon Sep 17 00:00:00 2001
From: Christopher Haine <chaine@cray.com>
Date: Tue, 18 May 2021 07:55:49 -0500
Subject: [PATCH] minor fixes

---
 maestro/groups.c      | 27 ++++++++++++++-------------
 transport/transport.c | 10 ++++++----
 2 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/maestro/groups.c b/maestro/groups.c
index 1f2c61b8..6a7f7cdd 100644
--- a/maestro/groups.c
+++ b/maestro/groups.c
@@ -312,20 +312,21 @@ mstro_group_seal(mstro_group g)
     HASH_ITER(hh, g->members, el, tmp) {
       m->declared_members[i] = malloc(sizeof(Mstro__Pool__UUID));
       /* need to ensure the GID is ready */
-      mstro_status s = mstro_cdo_seal(el->entry);
-      if(s!=MSTRO_OK) {
-        ERR("Failed to seal declared group member: %d\n", s);
-      }
-      if(s!=MSTRO_OK || m->declared_members[i]==NULL) {
-        for(size_t j=i; j>0; j--) {
-          free(m->declared_members[j-1]);
-        };
-        free(m->declared_members);
-        m->declared_members=NULL;
-        goto BAILOUT_FREE;
-        
+      if(!mstro_cdo_state_check(el->entry, MSTRO_CDO_STATE_SEALED)) {
+        mstro_status s = mstro_cdo_seal(el->entry);
+        if(s!=MSTRO_OK) {
+          ERR("Failed to seal declared group member: %d\n", s);
+        }
+        if(s!=MSTRO_OK || m->declared_members[i]==NULL) {
+          for(size_t j=i; j>0; j--) {
+            free(m->declared_members[j-1]);
+          };
+          free(m->declared_members);
+          m->declared_members=NULL;
+          goto BAILOUT_FREE;
+          
+        }
       }
-
       mstro__pool__uuid__init(m->declared_members[i]);
       m->declared_members[i]->qw0 = el->entry->gid.qw[0];
       m->declared_members[i]->qw1 = el->entry->gid.qw[1];
diff --git a/transport/transport.c b/transport/transport.c
index 101ec6c9..0690af7e 100644
--- a/transport/transport.c
+++ b/transport/transport.c
@@ -381,16 +381,18 @@ mstro_transport_execute(
        if(s==MSTRO_OK) {
          src_size=*(int64_t*)sizep;
        } else if(s==MSTRO_NOENT && type==MSTRO_CDO_ATTR_VALUE_INVALID) {
+	     ERR("Attribute not found or value invalid\n");
          src_size=-1;
        } else {
          ERR("Failed to look up %s (%d: %s)\n",
              MSTRO_ATTR_CORE_CDO_SCOPE_LOCAL_SIZE, s, mstro_status_description(s));
          return MSTRO_FAIL;
        }
-	   // XXX Let's use mamba, while we figure out the attribute corruption
-//       src_size = cdo->mamba_array->allocation->n_bytes;
- 
-       if (src_size != ticket->data_size) {
+
+       if (ticket->data_size == 0) {
+         DEBUG("0-transport\n");
+	   }
+       else if (src_size != ticket->data_size) {
          ERR("SRC cdo has a size (%" PRIi64 ") that doesn't match ticket-specified size (%" PRIi64 ")\n",
             src_size, ticket->data_size);
 			return MSTRO_FAIL;
-- 
GitLab