From 29b26b24da4bf2e363d00edbfea7f8b734de8ff2 Mon Sep 17 00:00:00 2001
From: Thomas Jahns <jahns@dkrz.de>
Date: Wed, 21 Aug 2019 13:44:46 +0200
Subject: [PATCH] Fix missing cleanup in parallel mode.

---
 src/pio_client.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/pio_client.c b/src/pio_client.c
index 4aaebcd66..e56f14b98 100644
--- a/src/pio_client.c
+++ b/src/pio_client.c
@@ -12,6 +12,9 @@
 #include "cdi.h"
 #include "cdi_int.h"
 #include "dmemory.h"
+#ifdef HAVE_LIBGRIB
+#include "gribapi.h"
+#endif
 #include "namespace.h"
 #include "taxis.h"
 #include "vlist.h"
@@ -375,7 +378,6 @@ cdiPioClientStreamNOP(stream_t *streamptr)
 static void
 cdiPioClientStreamClose(stream_t *streamptr, int recordBufIsToBeDeleted)
 {
-  (void) recordBufIsToBeDeleted;
   int streamID = streamptr->self;
   int clientRank = commInqRankModel(), numClients = cdiPioCommInqSizeClients(), numColl = commInqSizeColl(),
       collRank = cdiPioCollRank(clientRank, numClients, numColl);
@@ -401,6 +403,13 @@ cdiPioClientStreamClose(stream_t *streamptr, int recordBufIsToBeDeleted)
     }
   if (needsFlush) cdiPioClientStreamWinPost(streamID);
   cdiPioClientStreamWinDestroy(streamID);
+  if (recordBufIsToBeDeleted) switch (streamptr->filetype)
+      {
+#ifdef HAVE_LIBGRIB
+      case CDI_FILETYPE_GRB:
+      case CDI_FILETYPE_GRB2: gribContainersDelete(streamptr); break;
+#endif
+      }
 }
 
 static void
-- 
GitLab