Hi!

Here is a "poor man's fix" that works for me (the idea is not from me, thanks to Thomas H.):

#1- char* lCwd = getcwd(0,0);
#2- chdir(lPathToFile);
#3- MPI_File_open(...,lFileNameWithoutTooLongPath,...);
#4- chdir(lCwd);
#5- ...

I think there are some limitations but it works very well for our uses... and until a "real" fix is proposed...

Thanks for helping!

Eric


On 12/15/2014 11:42 PM, Gilles Gouaillardet wrote:
Eric and all,

That is clearly a limitation in romio, and this is being tracked at
https://trac.mpich.org/projects/mpich/ticket/2212

in the mean time, what we can do in OpenMPI is update
mca_io_romio_file_open() and fails with a user friendly error message
if strlen(filename) is larger that 225.

Cheers,

Gilles

On 2014/12/16 12:43, Gilles Gouaillardet wrote:
Eric,

thanks for the simple test program.

i think i see what is going wrong and i will make some changes to avoid
the memory overflow.

that being said, there is a hard coded limit of 256 characters, and your
path is bigger than 300 characters.
bottom line, and even if there is no more memory overflow, that cannot
work as expected.

i will report this to the mpich folks, since romio is currently imported
from mpich.

Cheers,

Gilles

On 2014/12/16 0:16, Eric Chamberland wrote:
Hi Gilles,

just created a very simple test case!

with this setup, you will see the bug with valgrind:

export
too_long=./this/is/a_very/long/path/that/contains/a/not/so/long/filename/but/trying/to/collectively/mpi_file_open/it/you/will/have/a/memory/corruption/resulting/of/invalide/writing/or/reading/past/the/end/of/one/or/some/hidden/strings/in/mpio/Simple/user/would/like/to/have/the/parameter/checked/and/an/error/returned/or/this/limit/removed

mpicc -o bug_MPI_File_open_path_too_long
bug_MPI_File_open_path_too_long.c

mkdir -p $too_long
echo "header of a text file" > $too_long/toto.txt

mpirun -np 2 valgrind ./bug_MPI_File_open_path_too_long
$too_long/toto.txt

and watch the errors!

unfortunately, the memory corruptions here doesn't seem to segfault
this simple test case, but in my case, it is fatal and with valgrind,
it is reported...

OpenMPI 1.6.5, 1.8.3rc3 are affected

MPICH-3.1.3 also have the error!

thanks,

Eric

_______________________________________________
users mailing list
us...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post: 
http://www.open-mpi.org/community/lists/users/2014/12/26005.php
_______________________________________________
users mailing list
us...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post: 
http://www.open-mpi.org/community/lists/users/2014/12/26006.php

Reply via email to