The gatekeeper script was not correctly respecting the locale specified
in the user's environment. So basically this scenario could (and did)
easily happen:
1. A committer writes a valid message in UTF-8 and runs `svn commit` with
a correct locale setting of `LANG=en_US.UTF-8`.
2. SVN transcodes that to UTF-8 for internal storage (a no-op in this
case).
3. The gatekeeper, also with `LANG=en_US.UTF-8` set, runs
`gkcommit.pl ...`. This breaks down into the following steps:
A. run `svn log --xml ...`, which SVN correctly transcodes from UTF-8
into the current locale, which happens to also be UTF-8
B. Perl reads this in and assumes this is a sequence of raw 8-bit
bytes in a "native" latin1-type encoding.
C. Perl's XML::Parser module spots the XML declaration stating the
content is UTF-8 encoded: `<?xml version="1.0" encoding="UTF-8"?>`.
Perl internally stores the parsed strings as proper Unicode
strings (UTF-8 encoded internally, but that's irrelevant here).
D. Perl writes out the commit message file in the _latin1_ encoding,
transcoding characters from internal UTF-8. This causes
characters like "ä" (Unicode code point: 0xe4, UTF-8 encoding:
0xc3 0xa4) to be encoded as a single byte: 0xe4.
This fix changes the behavior at steps 3A and 3D to transparently treat
the incoming/outgoing data as UTF-8 (assuming a UTF-8 locale is set in
the user's environment).
There can still be problems if either the committer or the gatekeeper
have locale settings that do not agree with the encoding that their
editor is producing, but such is i18n :(
Helpful references for anyone debugging this sort of issue in the
future:
* http://perldoc.perl.org/perllocale.html#Unicode-and-UTF-8
* http://perldoc.perl.org/perluniintro.html#Unicode-I%2fO
Refs trac:4217
Reviewed-by: Jeff Squyres <jsquyres@cisco.com>
cmr=v1.7.5:reviewer=ompi-rm1.7
This commit was SVN r30709.
The following Trac tickets were found above:
Ticket 4217 --> https://svn.open-mpi.org/trac/ompi/ticket/4217
Optimization of the MPI_Dims_create function which omits the usage of pre
calculated prime numbers and factorize directly as discussed at the developer
list.
cmr=v1.7.5:ticket=4217:reviewer=jsquyres
This commit was SVN r30695.
The following Trac tickets were found above:
Ticket 4217 --> https://svn.open-mpi.org/trac/ompi/ticket/4217
Freeprocs variable was obtained from nnodes, so check the value of nnodes at
the begin in the MPI_PARAM_CHECK code section instead as discussed at the
developer list.
cmr=v1.7.5:reviewer=jsquyres:subject=move parameter check to begin
jsquyres, please review this CMR. Thanks.
This commit was SVN r30694.
Some older versions of libibverbs do not have `ibv_event_type_str`,
leading to compilation failures on older machines, irrespective of
whether they could ever support usNIC anyway. If we encounter any other
build issues related to "old verbs" then we should just cause the usnic
BTL to disqualify itself when it encounters "old" traits.
Thanks to Paul Hargrove for reporting the issue:
http://www.open-mpi.org/community/lists/devel/2014/02/14056.php
Reviewed-by: Jeff Squyres <jsquyres@cisco.com>
cmr=v1.7.5:reviewer=ompi-rm1.7
This commit was SVN r30674.
only goes up to VADER_MAX_ADDRESS instead of 0xfffffffffffffffful.
cmr=v1.7.5:ticket=trac:4216
This commit was SVN r30669.
The following Trac tickets were found above:
Ticket 4216 --> https://svn.open-mpi.org/trac/ompi/ticket/4216
To be able to checkpoint/restart using criu (criu.org) a new
CRS component is added which is based on criu. This first commit
provides the minimal set of functions and configure script options
to enable --with-criu and link against libcriu.so.
No actual checkpoint/restart functionality is yet implemented.
This is only the framework which needs to be filled with the
actual functionality.
This commit was SVN r30666.
It turns out that ASYNCHRONOUS should not be used with ignore TKR
dummy parameters (some compilers will [correctly] warn about this).
Many thanks to Rolf Rabenseifner and Christoph Niethammer, who noticed
the problem.
Submitted by Rolf Rabenseifner, reviewed by Jeff.
cmr=v1.7.5:reviewer=ompi-rm1.7:subject=Remove ASYNCHRONOUS from the ignore TKR mpi_f08 module.
This commit was SVN r30665.