[ofa-general] [PATCH] ofed-1.2.5/mvapich2 bug fixes

Jim Schutt jaschut at sandia.gov
Fri Aug 31 09:15:58 PDT 2007


Hi,

I've been working with mvapich2 from the OFED-1.2.5 release (I used
http://www.openfabrics.org/downloads/OFED/ofed-1.2.5/OFED-1.2.5.tgz).

I've found a couple bugs in that version of mvapich2, which seem to
also be present in the upstream SVN at
https://mvapich.cse.ohio-state.edu/svn/mpi/mvapich2/branches/0.9.8
as of revision 1480.

The first is an install tool bug: DESTDIR gets prepended twice in 
some cases, once when calling FixInstallFile and once inside it.

The second is a memory-scribbling bug: in the call-chain
  rdma_cm_get_hostnames()->PMI_KVS_Get()->PMIU_getval()
PMIU_getval() overwrites byte PMI_vallen_max - 1 (in my test
case, PMI_vallen_max had value 2048) for a character array that
has length 16.

I'm not sure these are the right fixes, but with these patches
applied, mvapich2 from ofed-1.2.5 installs correctly and runs tests
it wouldn't run without them.

-- Jim

-- 
Jim Schutt  <jaschut at sandia.gov>
Sandia National Laboratories, Albuquerque, New Mexico USA

diff -urN mvapich2-0.9.8.orig/src/mpe2/sbin/mpeinstall.in mvapich2-0.9.8/src/mpe2/sbin/mpeinstall.in
--- mvapich2-0.9.8.orig/src/mpe2/sbin/mpeinstall.in	2006-04-09 11:57:00.000000000 -0600
+++ mvapich2-0.9.8/src/mpe2/sbin/mpeinstall.in	2007-08-31 10:02:10.000000000 -0600
@@ -442,10 +442,10 @@
          echo "Copying MPE utility programs to $DESTDIR$bindir"
          CopyDirRecurP $binbuild_dir $bindir $XMODE
          if [ -s $binbuild_dir/mpecc -a -x $binbuild_dir/mpecc ] ; then
-             FixInstallFile $binbuild_dir/mpecc $DESTDIR$bindir/mpecc $XMODE
+             FixInstallFile $binbuild_dir/mpecc $bindir/mpecc $XMODE
          fi
          if [ -s $binbuild_dir/mpefc -a -x $binbuild_dir/mpefc ] ; then
-             FixInstallFile $binbuild_dir/mpefc $DESTDIR$bindir/mpefc $XMODE
+             FixInstallFile $binbuild_dir/mpefc $bindir/mpefc $XMODE
          fi
     fi
 fi
@@ -457,7 +457,7 @@
          CopyDirRecurP $etcbuild_dir $sysconfdir $MODE
          cd $etcbuild_dir && \
          for file in *.conf ; do \
-             FixInstallFile $file $DESTDIR$sysconfdir/$file ; \
+             FixInstallFile $file $sysconfdir/$file ; \
          done
     fi
 fi
diff -urN mvapich2-0.9.8.orig/src/pmi/simple/simple_pmi.c mvapich2-0.9.8/src/pmi/simple/simple_pmi.c
--- mvapich2-0.9.8.orig/src/pmi/simple/simple_pmi.c	2006-04-09 11:57:00.000000000 -0600
+++ mvapich2-0.9.8/src/pmi/simple/simple_pmi.c	2007-08-31 10:02:26.000000000 -0600
@@ -566,7 +566,7 @@
 	PMIU_getval( "rc", buf, PMIU_MAXLINE );
 	rc = atoi( buf );
 	if ( rc == 0 ) {
-	    PMIU_getval( "value", value, PMI_vallen_max );
+	    PMIU_getval( "value", value, length );
 	    return( 0 );
 	}
 	else {




More information about the general mailing list