5674b62fd90df90955867e674a8f157a58a0e953
galt
  Wed Jun 18 14:33:02 2025 -0700
Fixes packet overflow issue in Parasol paraNode resurrect. refs #34883

diff --git src/parasol/paraNode/paraNode.c src/parasol/paraNode/paraNode.c
index 82c9c89902c..428c1f57e6c 100644
--- src/parasol/paraNode/paraNode.c
+++ src/parasol/paraNode/paraNode.c
@@ -571,46 +571,55 @@
 	    pmPrintf(&pm, "jobDone %s %s", jobIdString, job->doneMessage);
 	}
     pmSend(&pm, mainRudp);
     }
 }
 
 void doResurrect(char *line, struct sockaddr_storage *ipAddress)
 /* Send back I'm alive message */
 {
 struct paraMessage pm;
 struct dlNode *node;
 int jobsReported = 0;
 char     ipStr[NI_MAXHOST];
 getAddrAsString6n4(ipAddress, ipStr, sizeof ipStr);
 pmInit(&pm, ipStr, paraHubPortStr);
-pmPrintf(&pm, "alive %s", hostName);
+
 for (node = jobsRunning->head; !dlEnd(node); node = node->next)
     {
     struct job *job = node->val;
-    pmPrintf(&pm, " %d", job->jobId);
+    pmClear(&pm);
+    pmPrintf(&pm, "alive %s %d", hostName, job->jobId);
+    if (!pmSend(&pm, mainRudp))
+        return;
     ++jobsReported;
     }
 for (node = jobsFinished->head; !dlEnd(node); node = node->next)
     {
     struct job *job = node->val;
     if (jobsReported >= maxProcs)
 	break;
-    pmPrintf(&pm, " %d", job->jobId);
+    pmClear(&pm);
+    pmPrintf(&pm, "alive %s %d", hostName, job->jobId);
+    if (!pmSend(&pm, mainRudp))
+        return;
     ++jobsReported;
     }
-pmSend(&pm, mainRudp);
+pmClear(&pm);
+pmPrintf(&pm, "alive %s done", hostName);
+if (!pmSend(&pm, mainRudp))
+    return;
 }
 
 void doRun(char *line, struct sockaddr_storage *ipAddress)
 /* Execute command. */
 {
 char *jobMessage = cloneString(line);
 static char *args[1024];
 int argCount;
 char ipStr[NI_MAXHOST];
 getAddrAsString6n4(ipAddress, ipStr, sizeof ipStr);
 
 nextRandom();
 if (line == NULL)
     warn("Executing nothing...");
 else