Hello,
Just like r29736, I believe that there are some missing tests in 
ompi/mca/coll/libnbc/nbc_iscatterv.c and ompi/mca/coll/libnbc/nbc_igatherv.c
Thoughts ?
Pierre

Index: nbc_igatherv.c
===================================================================
--- nbc_igatherv.c      (revision 29756)
+++ nbc_igatherv.c      (working copy)
@@ -36,8 +36,10 @@
  if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Comm_rank() (%i)\n", res); 
return res; }
  res = MPI_Comm_size(comm, &p);
  if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Comm_rank() (%i)\n", res); 
return res; }
-  res = MPI_Type_extent(recvtype, &rcvext);
-  if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Type_extent() (%i)\n", 
res); return res; }
+  if (rank == root) {
+      res = MPI_Type_extent(recvtype, &rcvext);
+      if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Type_extent() 
(%i)\n", res); return res; }
+  }

  schedule = (NBC_Schedule*)malloc(sizeof(NBC_Schedule));
  if (NULL == schedule) { printf("Error in malloc() (%i)\n", res); return res; }
Index: nbc_iscatterv.c
===================================================================
--- nbc_iscatterv.c     (revision 29756)
+++ nbc_iscatterv.c     (working copy)
@@ -38,8 +38,10 @@
  if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Comm_rank() (%i)\n", res); 
return res; }
  res = MPI_Comm_size(comm, &p);
  if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Comm_size() (%i)\n", res); 
return res; }
-  res = MPI_Type_extent(sendtype, &sndext);
-  if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Type_extent() (%i)\n", 
res); return res; }
+  if (rank == root) {
+      res = MPI_Type_extent(sendtype, &sndext);
+      if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Type_extent() 
(%i)\n", res); return res; }
+  }

  schedule = (NBC_Schedule*)malloc(sizeof(NBC_Schedule));
  if (NULL == schedule) { printf("Error in malloc()\n"); return res; }

Reply via email to