[
https://issues.apache.org/jira/browse/IMPALA-532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17209717#comment-17209717
]
Tim Armstrong commented on IMPALA-532:
--------------------------------------
[~thundergun] looks like we could detect this by instantiating std::locale("")
and catching the exception, then failing with a fatal error - that is what
boost is doing here -
https://github.com/boostorg/filesystem/blob/boost-1.61.0/src/path.cpp#L906.
Here's a minimal c++ program that can reproduce the uncaught exception.
{code}
#include <locale>
int main() {
std::locale loc("");
return 0;
}
{code}
{noformat}
tarmstrong@tarmstrong-Precision-7540:~$ g++ locale.cc -o locale && LC_ALL="bad
local" ./locale
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
Aborted (core dumped)
tarmstrong@tarmstrong-Precision-7540:~$ g++ locale.cc -o locale && LC_ALL=""
./locale
OK
{noformat}
> Impala should tolerate bad locale settings.
> -------------------------------------------
>
> Key: IMPALA-532
> URL: https://issues.apache.org/jira/browse/IMPALA-532
> Project: IMPALA
> Issue Type: Bug
> Components: Backend
> Affects Versions: Impala 1.1
> Reporter: Ishaan Joshi
> Priority: Minor
>
> Currently, the Statestore does not tolerate a bad locale setting and crashes
> while starting up.
> {code}
> USE_DEBUG_BUILD=false
> + perl -pi -e
> 's#{{CMF_CONF_DIR}}#/var/run/cloudera-scm-agent/process/2469-impala-STATESTORE#g'
>
> /var/run/cloudera-scm-agent/process/2469-impala-STATESTORE/impala-conf/state_store_flags
> perl: warning: Setting locale failed.
> perl: warning: Please check that your locale settings:
> LANGUAGE = (unset),
> LC_ALL = (unset),
> LANG = "fr_FR.UTF-8"
> are supported and installed on your system.
> perl: warning: Falling back to the standard locale ("C").
> + '[' -f
> /var/run/cloudera-scm-agent/process/2469-impala-STATESTORE/impala-conf/.htpasswd
> ']'
> + chmod 600
> /var/run/cloudera-scm-agent/process/2469-impala-STATESTORE/impala-conf/.htpasswd
> + false
> + export
> IMPALA_BIN=/opt/cloudera/parcels/IMPALA-1.1-1.p0.8/lib/impala/sbin-retail
> + IMPALA_BIN=/opt/cloudera/parcels/IMPALA-1.1-1.p0.8/lib/impala/sbin-retail
> + '[' impalad = statestore ']'
> + '[' statestore = statestore ']'
> + exec
> /opt/cloudera/parcels/IMPALA-1.1-1.p0.8/lib/impala/../../bin/statestored
> --flagfile=/var/run/cloudera-scm-agent/process/2469-impala-STATESTORE/impala-conf/state_store_flags
> terminate called after throwing an instance of 'std::runtime_error'
> what(): locale::facet::_S_create_c_locale name not valid
> {code}
> It should fall back to the standard locale ("C"), if the user's locale is
> messed up.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]