Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: Re: [OMPI users] False positive from valgrind in sec_basic.c
From: George Bosilca (bosilca_at_[hidden])
Date: 2014-05-22 00:52:54


This is more subtle that described here. It's a vectorization problem
and frankly it should appear on all loop-based string operations and
for most compilers (confirmed with gcc, clang and icc). The proposed
patch is merely a band-aid ...

More info @ https://bugs.launchpad.net/ubuntu/+source/valgrind/+bug/852760.
A better fix for this issue will be to add "-fno-builtin-strdup" to
your CFLAGS when compiling Open MPI.

  George.

On Wed, May 21, 2014 at 5:34 PM, Ralph Castain <rhc_at_[hidden]> wrote:
> Wow, that is hilarious. I see no problem with adding the extra characters :-)
>
> Scheduled it for 1.8.2 (copied you on ticket)
>
>
> On May 21, 2014, at 3:29 PM, W Spector <w6ws_at_[hidden]> wrote:
>
>> Hi,
>>
>> When running under valgrind, I get warnings from each MPI process at MPI_Init time. The warnings come from function sec_basic.c at lines 70 and 71 (openmpi v1.8.1):
>>
>> my_cred.credential = strdup("12345");
>> my_cred.size = strlen(my_cred.credential)+1; // include the NULL
>>
>> This is because strdup(3c) and strlen(3c) are apparently optimized to use 4-byte integer loads to speed up the copy and search operations, and "overrun" the malloced area. (In fact, since malloc tends to pad allocations, it is safe. But valgrind doesn't know that.)
>>
>> Since the "12345" appears to be a dummy string, would it be ok to add a couple of additional characters in the strdup call to:
>>
>> my_cred.credential = strdup("1234567");
>>
>> This gives an 8 byte string (counting the NULL) and quiets valgrind down.
>>
>> Walter
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users