summary refs log tree commit diff
path: root/pkgs/development/libraries/openmpi/nbc_copy.patch
blob: d496c7cc2d7637d1fba2a0847c84dde75f5329f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
commit 4ee20ba31dd64b8f899447cdad78ec2379acfce7
Author: Gilles Gouaillardet <gilles@rist.or.jp>
Date:   Tue Nov 10 08:59:03 2015 +0900

    fix NBC_Copy for legitimate zero size messages
    
    (back ported from commit open-mpi/ompi@0bd765eddd33e3d4ac18ec644c60a5c160cb48dc)
    (back ported from commit open-mpi/ompi@9a70765f27fdf17e70e1a115754fef7e5f16132a)

diff --git a/ompi/mca/coll/libnbc/nbc_internal.h b/ompi/mca/coll/libnbc/nbc_internal.h
index bf2f1cb..81be8cc 100644
--- a/ompi/mca/coll/libnbc/nbc_internal.h
+++ b/ompi/mca/coll/libnbc/nbc_internal.h
@@ -501,7 +501,14 @@ static inline int NBC_Copy(void *src, int srccount, MPI_Datatype srctype, void *
   } else {
     /* we have to pack and unpack */
     res = MPI_Pack_size(srccount, srctype, comm, &size);
-    if (MPI_SUCCESS != res || 0 == size) { printf("MPI Error in MPI_Pack_size() (%i:%i)\n", res, size); return (MPI_SUCCESS == res) ? MPI_ERR_SIZE : res;}
+    if (MPI_SUCCESS != res) {
+      printf ("MPI Error in MPI_Pack_size() (%i:%i)", res, size);
+      return res;
+    }
+
+    if (0 == size) {
+        return OMPI_SUCCESS;
+    }
     packbuf = malloc(size);
     if (NULL == packbuf) { printf("Error in malloc()\n"); return res; }
     pos=0;